diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 2c7723ab5dd19f9816968c9a4d28145ed1d67092..de184b347bad5e56b587c89c3c11e74adbd51d16 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -178,7 +178,7 @@ set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS DIPOLE GRANULAR USER-MEAMC USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE USER-NETCDF USER-PHONON USER-PLUMED USER-PTM USER-QTB USER-REAXC USER-SCAFACOS USER-SDPD USER-SMD USER-SMTBQ USER-SPH USER-TALLY USER-UEF USER-VTK - USER-QUIP USER-QMMM) + USER-QUIP USER-QMMM USER-YAFF) set(ACCEL_PACKAGES USER-OMP KOKKOS OPT USER-INTEL GPU) set(OTHER_PACKAGES CORESHELL QEQ) foreach(PKG ${DEFAULT_PACKAGES}) diff --git a/doc/src/Commands_bond.txt b/doc/src/Commands_bond.txt index fbf292aab2798dbeeb5623f3f43dc8a169e3f367..3b79612e766c5649b93b8138e889c37bb5afb73e 100644 --- a/doc/src/Commands_bond.txt +++ b/doc/src/Commands_bond.txt @@ -37,6 +37,7 @@ OPT. "harmonic (iko)"_bond_harmonic.html, "harmonic/shift (o)"_bond_harmonic_shift.html, "harmonic/shift/cut (o)"_bond_harmonic_shift_cut.html, +"mm3"_bond_mm3.html, "morse (o)"_bond_morse.html, "nonlinear (o)"_bond_nonlinear.html, "oxdna/fene"_bond_oxdna.html, @@ -67,10 +68,12 @@ OPT. "cosine/shift (o)"_angle_cosine_shift.html, "cosine/shift/exp (o)"_angle_cosine_shift_exp.html, "cosine/squared (o)"_angle_cosine_squared.html, +"cross"_angle_cross.html, "dipole (o)"_angle_dipole.html, "fourier (o)"_angle_fourier.html, "fourier/simple (o)"_angle_fourier_simple.html, "harmonic (iko)"_angle_harmonic.html, +"mm3"_angle_mm3.html, "quartic (o)"_angle_quartic.html, "sdk (o)"_angle_sdk.html, "table (o)"_angle_table.html :tb(c=4,ea=c) @@ -120,8 +123,10 @@ OPT. "cossq (o)"_improper_cossq.html, "cvff (io)"_improper_cvff.html, "distance"_improper_distance.html, +"distharm"_improper_distharm.html, "fourier (o)"_improper_fourier.html, "harmonic (iko)"_improper_harmonic.html, "inversion/harmonic"_improper_inversion_harmonic.html, "ring (o)"_improper_ring.html, +"sqdistharm"_improper_sqdistharm.html, "umbrella (o)"_improper_umbrella.html :tb(c=4,ea=c) diff --git a/doc/src/Commands_pair.txt b/doc/src/Commands_pair.txt index 46f4950ad78fb60db7555b50810b318a56cd4147..b498e6bfdadc348034e849839c505d866af1639c 100644 --- a/doc/src/Commands_pair.txt +++ b/doc/src/Commands_pair.txt @@ -154,6 +154,7 @@ OPT. "lj/sf/dipole/sf (go)"_pair_dipole.html, "lj/smooth (o)"_pair_lj_smooth.html, "lj/smooth/linear (o)"_pair_lj_smooth_linear.html, +"lj/switch3/coulgauss/long"_pair_lj_switch3_coulgauss.html, "lj96/cut (go)"_pair_lj96.html, "lubricate (o)"_pair_lubricate.html, "lubricate/poly (o)"_pair_lubricate.html, diff --git a/doc/src/Eqs/angle_cross.jpg b/doc/src/Eqs/angle_cross.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b0f3fcf83ac2621807c7ae58772bfbddd1d94824 Binary files /dev/null and b/doc/src/Eqs/angle_cross.jpg differ diff --git a/doc/src/Eqs/angle_cross.tex b/doc/src/Eqs/angle_cross.tex new file mode 100644 index 0000000000000000000000000000000000000000..9d1fdcb7f8e53e19e61b596e0e313d3050a46c4a --- /dev/null +++ b/doc/src/Eqs/angle_cross.tex @@ -0,0 +1,9 @@ +\documentclass[12pt]{article} + +\begin{document} +\thispagestyle{empty} +$$ + E = K_{SS} \left(r_{12}-r_{12,0}\right)\left(r_{32}-r_{32,0}\right) + K_{BS0}\left(r_{12}-r_{12,0}\right)\left(\theta-\theta_0\right) + K_{BS1}\left(r_{32}-r_{32,0}\right)\left(\theta-\theta_0\right) +$$ + +\end{document} diff --git a/doc/src/Eqs/angle_mm3.jpg b/doc/src/Eqs/angle_mm3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5b9f3e34f091f5a2d439294e9c5a1802a2885fb4 Binary files /dev/null and b/doc/src/Eqs/angle_mm3.jpg differ diff --git a/doc/src/Eqs/angle_mm3.tex b/doc/src/Eqs/angle_mm3.tex new file mode 100644 index 0000000000000000000000000000000000000000..e2d96f2d6939db2c6eb3e0ad3cbdf6dd4e4c9321 --- /dev/null +++ b/doc/src/Eqs/angle_mm3.tex @@ -0,0 +1,9 @@ +\documentclass[12pt]{article} + +\begin{document} +\thispagestyle{empty} +$$ + E = K (\theta - \theta_0)^2 \left[ 1 - 0.014(\theta - \theta_0) + 5.6(10)^{-5} (\theta - \theta_0)^2 - 7.0(10)^{-7} (\theta - \theta_0)^3 + 9(10)^{-10} (\theta - \theta_0)^4 \right] +$$ + +\end{document} diff --git a/doc/src/Eqs/bond_mm3.jpg b/doc/src/Eqs/bond_mm3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2c17739db57e8d147166ab0a4cc768cf80f534af Binary files /dev/null and b/doc/src/Eqs/bond_mm3.jpg differ diff --git a/doc/src/Eqs/bond_mm3.tex b/doc/src/Eqs/bond_mm3.tex new file mode 100644 index 0000000000000000000000000000000000000000..549500ebacc714b7106a864d4ba0b3d0d3f6bf7e --- /dev/null +++ b/doc/src/Eqs/bond_mm3.tex @@ -0,0 +1,9 @@ +\documentclass[12pt]{article} + +\begin{document} +\thispagestyle{empty} +$$ + E = K (r - r_0)^2 \left[ 1 - 2.55(r-r_0) + (7/12) 2.55^2(r-r_0)^2 \right] +$$ + +\end{document} diff --git a/doc/src/Eqs/improper_distharm.jpg b/doc/src/Eqs/improper_distharm.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e55036b5bf092c1b35b8ba42427b78f562238947 Binary files /dev/null and b/doc/src/Eqs/improper_distharm.jpg differ diff --git a/doc/src/Eqs/improper_distharm.tex b/doc/src/Eqs/improper_distharm.tex new file mode 100644 index 0000000000000000000000000000000000000000..218de6a0ddc40ecd9021dd430647bc678c6e3fa0 --- /dev/null +++ b/doc/src/Eqs/improper_distharm.tex @@ -0,0 +1,9 @@ +\documentclass[12pt]{article} + +\begin{document} +\thispagestyle{empty} +$$ + E = K (d - d_0)^2 +$$ + +\end{document} diff --git a/doc/src/Eqs/improper_sqdistharm.jpg b/doc/src/Eqs/improper_sqdistharm.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b1a84e995e655ca32d6529122fa971bc1ef1e574 Binary files /dev/null and b/doc/src/Eqs/improper_sqdistharm.jpg differ diff --git a/doc/src/Eqs/improper_sqdistharm.tex b/doc/src/Eqs/improper_sqdistharm.tex new file mode 100644 index 0000000000000000000000000000000000000000..1b50a309a046a0b4fe4a32ce6b728f5666dfda10 --- /dev/null +++ b/doc/src/Eqs/improper_sqdistharm.tex @@ -0,0 +1,9 @@ +\documentclass[12pt]{article} + +\begin{document} +\thispagestyle{empty} +$$ + E = K (d^2 - d_0^2)^2 +$$ + +\end{document} diff --git a/doc/src/Eqs/pair_coulgauss.jpg b/doc/src/Eqs/pair_coulgauss.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bf84d90c4a1b4a7774e3933bfef6e949c9603cf7 Binary files /dev/null and b/doc/src/Eqs/pair_coulgauss.jpg differ diff --git a/doc/src/Eqs/pair_coulgauss.tex b/doc/src/Eqs/pair_coulgauss.tex new file mode 100644 index 0000000000000000000000000000000000000000..216d3b3360a791efb8ac8f29fe9dc887e87a97b5 --- /dev/null +++ b/doc/src/Eqs/pair_coulgauss.tex @@ -0,0 +1,9 @@ +\documentclass[12pt]{article} + +\begin{document} + \thispagestyle{empty} +\begin{eqnarray*} + E &=& \frac{q_i q_j \mathrm{erf}\left( r/\sqrt{\gamma_1^2+\gamma_2^2} \right) }{\epsilon r_{ij}} +\end{eqnarray*} + +\end{document} diff --git a/doc/src/Eqs/pair_lj_switch3.jpg b/doc/src/Eqs/pair_lj_switch3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a1f98ea2c24bcac86871e1476901791edc83dc62 Binary files /dev/null and b/doc/src/Eqs/pair_lj_switch3.jpg differ diff --git a/doc/src/Eqs/pair_lj_switch3.tex b/doc/src/Eqs/pair_lj_switch3.tex new file mode 100644 index 0000000000000000000000000000000000000000..29161fb2ef679f9d2186dcf31335b5daacc5540b --- /dev/null +++ b/doc/src/Eqs/pair_lj_switch3.tex @@ -0,0 +1,11 @@ +\documentclass[12pt]{article} + +\begin{document} + \thispagestyle{empty} + +\begin{eqnarray*} + E = 4\epsilon \left[ \left(\frac{\sigma}{r}\right)^{12}-\left(\frac{\sigma}{r}\right)^{6} \right] +% \qquad r < r_c \\ +\end{eqnarray*} + +\end{document} diff --git a/doc/src/Eqs/pair_mm3_switch3.jpg b/doc/src/Eqs/pair_mm3_switch3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5d662584a7d1fec8d273c87ce3bf0b16a904f6d4 Binary files /dev/null and b/doc/src/Eqs/pair_mm3_switch3.jpg differ diff --git a/doc/src/Eqs/pair_mm3_switch3.tex b/doc/src/Eqs/pair_mm3_switch3.tex new file mode 100644 index 0000000000000000000000000000000000000000..a80278cce2236c6f7ba4951cadb8fe781abc60d2 --- /dev/null +++ b/doc/src/Eqs/pair_mm3_switch3.tex @@ -0,0 +1,11 @@ +\documentclass[12pt]{article} + +\begin{document} + \thispagestyle{empty} +\begin{eqnarray*} + E &=& \epsilon_{ij} \left[ -2.25 \left(\frac{r_{v,ij}}{r_{ij}}\right)^6 + 1.84(10)^5 \exp\left[-12.0 r_{ij}/r_{v,ij}\right] \right] S_3(r_{ij}) \\ + r_{v,ij} &=& r_{v,i} + r_{v,j} \\ + \epsilon_{ij} &=& \sqrt{\epsilon_i \epsilon_j} +\end{eqnarray*} + +\end{document} diff --git a/doc/src/Eqs/pair_switch3.jpg b/doc/src/Eqs/pair_switch3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e6327ee5ff1d2b6e586e4d0fdfc879a4b9977a56 Binary files /dev/null and b/doc/src/Eqs/pair_switch3.jpg differ diff --git a/doc/src/Eqs/pair_switch3.tex b/doc/src/Eqs/pair_switch3.tex new file mode 100644 index 0000000000000000000000000000000000000000..7ae67a5e6548ed1b342a596ec3fbfbbec023891c --- /dev/null +++ b/doc/src/Eqs/pair_switch3.tex @@ -0,0 +1,14 @@ +\documentclass[12pt]{article} + +\begin{document} +\thispagestyle{empty} + +\begin{eqnarray*} + S_3(r) = \left\lbrace \begin{array}{ll} + 1 & \quad\mathrm{if}\quad r < r_\mathrm{c} - w \\ + 3x^2 - 2x^3 & \quad\mathrm{if}\quad r < r_\mathrm{c} \quad\mathrm{with\quad} x=\frac{r_\mathrm{c} - r}{w} \\ + 0 & \quad\mathrm{if}\quad r >= r_\mathrm{c} + \end{array} \right. +\end{eqnarray*} + +\end{document} diff --git a/doc/src/Packages_details.txt b/doc/src/Packages_details.txt index 4768c50ca47d8ad2d9f8ec0634e4bf43f5ac2031..ebfe01d8a73a2cfbda9057cd761131313b3d0041 100644 --- a/doc/src/Packages_details.txt +++ b/doc/src/Packages_details.txt @@ -100,7 +100,8 @@ as contained in the file name. "USER-SPH"_#PKG-USER-SPH, "USER-TALLY"_#PKG-USER-TALLY, "USER-UEF"_#PKG-USER-UEF, -"USER-VTK"_#PKG-USER-VTK :tb(c=6,ea=c) +"USER-VTK"_#PKG-USER-VTK, +"USER-YAFF"_#PKG-USER-YAFF, :tb(c=6,ea=c) :line @@ -2067,3 +2068,39 @@ lib/vtk/README "dump vtk"_dump_vtk.html :ul +:line + +USER-YAFF package :link(PKG-USER-YAFF),h4 + +[Contents:] + +Some potentials that are also implemented in the Yet Another Force Field ("YAFF"_yaff) code. +The expressions and their use are discussed in the following papers + +Vanduyfhuys et al., J. Comput. Chem., 36 (13), 1015-1027 (2015) "link"_vanduyfhuys2015 +Vanduyfhuys et al., J. Comput. Chem., 39 (16), 999-1011 (2018) "link"_vanduyfhuys2018 :ul + +which discuss the "QuickFF"_quickff methodology. + + +:link(vanduyfhuys2015,http://dx.doi.org/10.1002/jcc.23877) +:link(vanduyfhuys2018,http://dx.doi.org/10.1002/jcc.25173) +:link(quickff,http://molmod.github.io/QuickFF) +:link(yaff,https://github.com/molmod/yaff) + + +[Author:] Steven Vandenbrande. + +[Supporting info:] + +src/USER-YAFF/README +"angle_style cross"_angle_cross.html +"angle_style mm3"_angle_mm3.html +"bond_style mm3"_bond_mm3.html +"improper_style distharm"_improper_distharm.html +"improper_style sqdistharm"_improper_sqdistharm.html +"pair_style mm3/switch3/coulgauss/long"_pair_mm3_switch3_coulgauss.html +"pair_style lj/switch3/coulgauss/long"_pair_lj_switch3_coulgauss.html +examples/USER/yaff :ul + + diff --git a/doc/src/Packages_user.txt b/doc/src/Packages_user.txt index cea3db4377411c05272bae170c09625678e46cf0..4a702e971fe526c00298996da98776d2f0224f28 100644 --- a/doc/src/Packages_user.txt +++ b/doc/src/Packages_user.txt @@ -75,7 +75,8 @@ Package, Description, Doc page, Example, Library "USER-SPH"_Packages_details.html#PKG-USER-SPH, smoothed particle hydrodynamics,"SPH User Guide"_PDF/SPH_LAMMPS_userguide.pdf, USER/sph, no "USER-TALLY"_Packages_details.html#PKG-USER-TALLY, pairwise tally computes,"compute XXX/tally"_compute_tally.html, USER/tally, no "USER-UEF"_Packages_details.html#PKG-USER-UEF, extensional flow,"fix nvt/uef"_fix_nh_uef.html, USER/uef, no -"USER-VTK"_Packages_details.html#PKG-USER-VTK, dump output via VTK, "compute vtk"_dump_vtk.html, n/a, ext :tb(ea=c,ca1=l) +"USER-VTK"_Packages_details.html#PKG-USER-VTK, dump output via VTK, "compute vtk"_dump_vtk.html, n/a, ext +"USER-YAFF"_Packages_details.html#PKG-USER-YAFF, additional styles implemented in YAFF, "angle_style cross"_angle_cross.html, USER/yaff, no :tb(ea=c,ca1=l) :link(MOFplus,https://www.mofplus.org/content/show/MOF-FF) :link(PLUMED,http://www.plumed.org) diff --git a/doc/src/angle_cross.txt b/doc/src/angle_cross.txt new file mode 100644 index 0000000000000000000000000000000000000000..d9d83ed4b69eef64c269f264382c1073259c0f5f --- /dev/null +++ b/doc/src/angle_cross.txt @@ -0,0 +1,62 @@ +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Commands_all.html) + +:line + +angle_style cross command :h3 + +[Syntax:] + +angle_style cross :pre + +[Examples:] + +angle_style cross +angle_coeff 1 200.0 100.0 100.0 1.25 1.25 107.0 :pre + +[Description:] + +The {cross} angle style uses a potential that couples the bond stretches of +a bend with the angle stretch of that bend: + +:c,image(Eqs/angle_cross.jpg) + +where r12,0 is the rest value of the bond length between atom 1 and 2, +r32,0 is the rest value of the bond length between atom 2 and 2, +and theta0 is the rest value of the angle. KSS is the force constant of +the bond stretch-bond stretch term and KBS0 and KBS1 are the force constants +of the bond stretch-angle stretch terms. + +The following coefficients must be defined for each angle type via the +"angle_coeff"_angle_coeff.html command as in the example above, or in +the data file or restart files read by the "read_data"_read_data.html +or "read_restart"_read_restart.html commands: + +KSS (energy/distance^2) +KBS0 (energy/distance/rad) +KBS1 (energy/distance/rad) +r12,0 (distance) +r32,0 (distance) +theta0 (degrees) :ul + +Theta0 is specified in degrees, but LAMMPS converts it to radians +internally; hence the units of KBS0 and KBS1 are in energy/distance/radian. + +[Restrictions:] + +This angle style can only be used if LAMMPS was built with the +USER_YAFF package. See the "Build package"_Build_package.html doc +page for more info. + +[Related commands:] + +"angle_coeff"_angle_coeff.html + +[Default:] none + +:line + + diff --git a/doc/src/angle_mm3.txt b/doc/src/angle_mm3.txt new file mode 100644 index 0000000000000000000000000000000000000000..9ae032c4ff5344f78267b50c1d4f81914c15d6f6 --- /dev/null +++ b/doc/src/angle_mm3.txt @@ -0,0 +1,55 @@ +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Commands_all.html) + +:line + +angle_style mm3 command :h3 + +[Syntax:] + +angle_style mm3 :pre + +[Examples:] + +angle_style mm3 +angle_coeff 1 100.0 107.0 :pre + +[Description:] + +The {mm3} angle style uses the potential that is anharmonic in the angle +as defined in "(Allinger)"_#mm3-allinger1989 + +:c,image(Eqs/angle_mm3.jpg) + +where theta0 is the equilibrium value of the angle, and K is a +prefactor. The anharmonic prefactors have units deg^(-n), for example +-0.014 deg^(-1), 5.6(10)^(-5) deg^(-2), ... + +The following coefficients must be defined for each angle type via the +"angle_coeff"_angle_coeff.html command as in the example above, or in +the data file or restart files read by the "read_data"_read_data.html +or "read_restart"_read_restart.html commands: + +K (energy/radian^2) +theta0 (degrees) :ul + +Theta0 is specified in degrees, but LAMMPS converts it to radians +internally; hence the units of K are in energy/radian^2. + +[Restrictions:] + +This angle style can only be used if LAMMPS was built with the +USER_YAFF package. See the "Build package"_Build_package.html doc +page for more info. + +[Related commands:] + +"angle_coeff"_angle_coeff.html + +[Default:] none + +:line + diff --git a/doc/src/angle_style.txt b/doc/src/angle_style.txt index 2c3c1f2bd1ff81aeb8a057b42148488cd096c6be..2f2da678d86ab7a2e254e318d0b713a87381add0 100644 --- a/doc/src/angle_style.txt +++ b/doc/src/angle_style.txt @@ -81,10 +81,12 @@ of (g,i,k,o,t) to indicate which accelerated styles exist. "cosine/shift"_angle_cosine_shift.html - angle cosine with a shift "cosine/shift/exp"_angle_cosine_shift_exp.html - cosine with shift and exponential term in spring constant "cosine/squared"_angle_cosine_squared.html - angle with cosine squared term +"cross"_angle_cross.html - cross term coupling angle and bond lengths "dipole"_angle_dipole.html - angle that controls orientation of a point dipole "fourier"_angle_fourier.html - angle with multiple cosine terms "fourier/simple"_angle_fourier_simple.html - angle with a single cosine term "harmonic"_angle_harmonic.html - harmonic angle +"mm3"_angle_mm3.html - anharmonic angle "quartic"_angle_quartic.html - angle with cubic and quartic terms "sdk"_angle_sdk.html - harmonic angle with repulsive SDK pair style between 1-3 atoms "table"_angle_table.html - tabulated by angle :ul diff --git a/doc/src/angles.txt b/doc/src/angles.txt index 3e91ba9917176bf02c5e06ba403aa18b2b2cd9d6..3d8a47b2ebceb834ca91aec44d81dd42f5b4c9e2 100644 --- a/doc/src/angles.txt +++ b/doc/src/angles.txt @@ -14,11 +14,13 @@ Angle Styles :h1 angle_cosine_shift angle_cosine_shift_exp angle_cosine_squared + angle_cross angle_dipole angle_fourier angle_fourier_simple angle_harmonic angle_hybrid + angle_mm3 angle_none angle_quartic angle_sdk diff --git a/doc/src/bond_mm3.txt b/doc/src/bond_mm3.txt new file mode 100644 index 0000000000000000000000000000000000000000..c3d0e39f52cf4885a7bd271cc00b8f60413b6163 --- /dev/null +++ b/doc/src/bond_mm3.txt @@ -0,0 +1,58 @@ +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Commands_all.html) + +:line + +bond_style mm3 command :h3 + +[Syntax:] + +bond_style mm3 :pre + +[Examples:] + +bond_style mm3 +bond_coeff 1 100.0 107.0 :pre + +[Description:] + +The {mm3} bond style uses the potential that is anharmonic in the bond +as defined in "(Allinger)"_#mm3-allinger1989 + +:c,image(Eqs/bond_mm3.jpg) + +where r0 is the equilibrium value of the bond, and K is a +prefactor. The anharmonic prefactors have units angstrom^(-n): +-2.55 angstrom^(-1) and (7/12)2.55^2 angstrom^(-2). The code takes +care of the necessary unit conversion for these factors internally. +Note that the MM3 papers contains an error in Eq (1): +(7/12)2.55 should be replaced with (7/12)2.55^2 + +The following coefficients must be defined for each bond type via the +"bond_coeff"_bond_coeff.html command as in the example above, or in +the data file or restart files read by the "read_data"_read_data.html +or "read_restart"_read_restart.html commands: + +K (energy/distance^2) +r0 (distance) :ul + +[Restrictions:] + +This bond style can only be used if LAMMPS was built with the +USER_YAFF package. See the "Build package"_Build_package.html doc +page for more info. + +[Related commands:] + +"bond_coeff"_bond_coeff.html + +[Default:] none + +:line + +:link(mm3-allinger1989) +[(Allinger)] Allinger, Yuh, Lii, JACS, 111(23), 8551-8566 +(1989), diff --git a/doc/src/bond_style.txt b/doc/src/bond_style.txt index ae19f2369d83c476ea9cad4740efbb5c55968d07..aba6d3a7781fe952c7977361536ae758983654ba 100644 --- a/doc/src/bond_style.txt +++ b/doc/src/bond_style.txt @@ -86,6 +86,7 @@ accelerated styles exist. "harmonic"_bond_harmonic.html - harmonic bond "harmonic/shift"_bond_harmonic_shift.html - shifted harmonic bond "harmonic/shift/cut"_bond_harmonic_shift_cut.html - shifted harmonic bond with a cutoff +"mm3"_bond_mm3.html - MM3 anharmonic bond "morse"_bond_morse.html - Morse bond "nonlinear"_bond_nonlinear.html - nonlinear bond "oxdna/fene"_bond_oxdna.html - modified FENE bond suitable for DNA modeling diff --git a/doc/src/bonds.txt b/doc/src/bonds.txt index d33515eb88e36c3aca1525e5426a6cc80cbdeae8..48896e711c3bcdc57dd637c00ec0d285a6914f61 100644 --- a/doc/src/bonds.txt +++ b/doc/src/bonds.txt @@ -13,6 +13,7 @@ Bond Styles :h1 bond_harmonic_shift bond_harmonic_shift_cut bond_hybrid + bond_mm3 bond_morse bond_none bond_nonlinear diff --git a/doc/src/improper_distharm.txt b/doc/src/improper_distharm.txt new file mode 100644 index 0000000000000000000000000000000000000000..52815e76aaaab5226076876c2bc118e3bf9e67f4 --- /dev/null +++ b/doc/src/improper_distharm.txt @@ -0,0 +1,53 @@ +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Commands_all.html) + +:line + +improper_style distharm command :h3 + +[Syntax:] + +improper_style distharm + +[Examples:] + +improper_style distharm +improper_coeff 1 25.0 0.5 :pre + +[Description:] + +The {distharm} improper style uses the potential + +:c,image(Eqs/improper_distharm.jpg) + +where d is the oriented distance between the central atom and the plane formed +by the other three atoms. If the 4 atoms in an improper quadruplet +(listed in the data file read by the "read_data"_read_data.html +command) are ordered I,J,K,L then the L-atom is assumed to be the +central atom. Note that this is different from the convention used +in the improper_style distance. The distance d is oriented and can take +on negative values. This may lead to unwanted behavior if d0 is not equal to zero. + +The following coefficients must be defined for each improper type via +the improper_coeff command as in the example above, or in the data +file or restart files read by the read_data or read_restart commands: + +K (energy/distance^2) +d0 (distance) :ul + +:line + +[Restrictions:] + +This improper style can only be used if LAMMPS was built with the +USER-YAFF package. See the "Build package"_Build_package.html doc +page for more info. + +[Related commands:] + +"improper_coeff"_improper_coeff.html + +[Default:] none diff --git a/doc/src/improper_sqdistharm.txt b/doc/src/improper_sqdistharm.txt new file mode 100644 index 0000000000000000000000000000000000000000..7473fd8c5d87ed15c26ecfe9fba0dec3d92c0642 --- /dev/null +++ b/doc/src/improper_sqdistharm.txt @@ -0,0 +1,54 @@ +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Commands_all.html) + +:line + +improper_style sqdistharm command :h3 + +[Syntax:] + +improper_style sqdistharm + +[Examples:] + +improper_style sqdistharm +improper_coeff 1 50.0 0.1 :pre + +[Description:] + +The {sqdistharm} improper style uses the potential + +:c,image(Eqs/improper_sqdistharm.jpg) + +where d is the distance between the central atom and the plane formed +by the other three atoms. If the 4 atoms in an improper quadruplet +(listed in the data file read by the "read_data"_read_data.html +command) are ordered I,J,K,L then the L-atom is assumed to be the +central atom. Note that this is different from the convention used +in the improper_style distance. + +The following coefficients must be defined for each improper type via +the improper_coeff command as in the example above, or in the data +file or restart files read by the read_data or read_restart commands: + +K (energy/distance^4) +d0^2 (distance^2) :ul + +Note that d0^2 (in units distance^2) has be provided and not d0. + +:line + +[Restrictions:] + +This improper style can only be used if LAMMPS was built with the +USER-MISC package. See the "Build package"_Build_package.html doc +page for more info. + +[Related commands:] + +"improper_coeff"_improper_coeff.html + +[Default:] none diff --git a/doc/src/improper_style.txt b/doc/src/improper_style.txt index c5e0be8a819aac165d61952af8abee28b908a22c..cd72da4d073d700aef9d310a1f2aa362334b651f 100644 --- a/doc/src/improper_style.txt +++ b/doc/src/improper_style.txt @@ -78,11 +78,13 @@ more of (g,i,k,o,t) to indicate which accelerated styles exist. "cossq"_improper_cossq.html - improper with a cosine squared term "cvff"_improper_cvff.html - CVFF improper "distance"_improper_distance.html - improper based on distance between atom planes +"distharm"_improper_distharm.html - improper that is harmonic in the out-of-plane distance "fourier"_improper_fourier.html - improper with multiple cosine terms "harmonic"_improper_harmonic.html - harmonic improper "inversion/harmonic"_improper_inversion_harmonic.html - harmonic improper with Wilson-Decius out-of-plane definition "ring"_improper_ring.html - improper which prevents planar conformations "umbrella"_improper_umbrella.html - DREIDING improper :ul +"sqdistharm"_improper_sqdistharm.html - improper that is harmonic in the square of the out-of-plane distance :line diff --git a/doc/src/impropers.txt b/doc/src/impropers.txt index ca6c839c95a03fc934d8811d8e4ab0284f4b2d94..ce829197fe8d5970a6c13752d116145db281ae03 100644 --- a/doc/src/impropers.txt +++ b/doc/src/impropers.txt @@ -9,6 +9,7 @@ Improper Styles :h1 improper_cossq improper_cvff improper_distance + improper_distharm improper_fourier improper_harmonic improper_hybrid @@ -16,6 +17,7 @@ Improper Styles :h1 improper_none improper_ring improper_umbrella + improper_sqdistharm improper_zero END_RST --> diff --git a/doc/src/lammps.book b/doc/src/lammps.book index a1bbaf896ed48258a7d75f6257acc8d941f82f4e..5ae3456ad4be214edce5fc66e0d55b4e6418db26 100644 --- a/doc/src/lammps.book +++ b/doc/src/lammps.book @@ -596,6 +596,7 @@ pair_lj_long.html pair_lj_smooth.html pair_lj_smooth_linear.html pair_lj_soft.html +pair_lj_switch3_coulgauss.html pair_lubricate.html pair_lubricateU.html pair_mdf.html @@ -605,6 +606,7 @@ pair_meam_sw_spline.html pair_meso.html pair_mgpt.html pair_mie.html +pair_mm3_switch3_coulgauss.html pair_momb.html pair_morse.html pair_multi_lucy.html @@ -668,6 +670,7 @@ bond_harmonic_shift.html bond_harmonic_shift_cut.html bond_hybrid.html bond_morse.html +bond_mm3.html bond_none.html bond_nonlinear.html bond_oxdna.html @@ -687,11 +690,13 @@ angle_cosine_periodic.html angle_cosine_shift.html angle_cosine_shift_exp.html angle_cosine_squared.html +angle_cross.html angle_dipole.html angle_fourier.html angle_fourier_simple.html angle_harmonic.html angle_hybrid.html +angle_mm3.html angle_none.html angle_quartic.html angle_sdk.html @@ -725,6 +730,7 @@ improper_class2.html improper_cossq.html improper_cvff.html improper_distance.html +improper_distharm.html improper_fourier.html improper_harmonic.html improper_hybrid.html @@ -732,6 +738,7 @@ improper_inversion_harmonic.html improper_none.html improper_ring.html improper_umbrella.html +improper_sqdistharm.html improper_zero.html lammps_commands_kspace.html diff --git a/doc/src/pair_lj_switch3_coulgauss.txt b/doc/src/pair_lj_switch3_coulgauss.txt new file mode 100644 index 0000000000000000000000000000000000000000..1277cff9aa995ed3663050dd966729ac42db6a17 --- /dev/null +++ b/doc/src/pair_lj_switch3_coulgauss.txt @@ -0,0 +1,86 @@ +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Commands_all.html) + +:line + +pair_style lj/switch3/coulgauss/long command :h3 + +[Syntax:] + +pair_style style args :pre + +style = {lj/switch3/coulgauss/long} +args = list of arguments for a particular style :ul + {lj/switch3/coulgauss/long} args = cutoff (cutoff2) width + cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) + cutoff2 = global cutoff for Coulombic (optional) (distance units) + width = width parameter of the smoothing function (distance units) :pre + +[Examples:] + +pair_style lj/switch3/coulgauss/long 12.0 3.0 +pair_coeff 1 0.2 2.5 1.2 :pre + +pair_style lj/switch3/coulgauss/long 12.0 10.0 3.0 +pair_coeff 1 0.2 2.5 1.2 :pre + +[Description:] + +The {lj/switch3/coulgauss} style evaluates the LJ +vdW potential + +:c,image(Eqs/pair_lj_switch3.jpg) + +, which goes smoothly to zero at the cutoff r_c as defined +by the switching function + +:c,image(Eqs/pair_switch3.jpg) + +where w is the width defined in the arguments. This potential +is combined with Coulomb interaction between Gaussian charge densities: + +:c,image(Eqs/pair_coulgauss.jpg) + +where qi and qj are the +charges on the 2 atoms, epsilon is the dielectric constant which +can be set by the "dielectric"_dielectric.html command, gamma_i and gamma_j +are the widths of the Gaussian charge distribution and erf() is the error-function. +This style has to be used in conjunction with the "kspace_style"_kspace_style.html command + +If one cutoff is specified it is used for both the vdW and Coulomb +terms. If two cutoffs are specified, the first is used as the cutoff +for the vdW terms, and the second is the cutoff for the Coulombic term. + +The following coefficients must be defined for each pair of atoms +types via the "pair_coeff"_pair_coeff.html command as in the examples +above, or in the data file or restart files read by the +"read_data"_read_data.html or "read_restart"_read_restart.html +commands: + +epsilon (energy) +sigma (distance) +gamma (distance) :ul + +:line + +[Mixing, shift, table, tail correction, restart, rRESPA info]: + +Shifting the potential energy is not necessary because the switching +function ensures that the potential is zero at the cut-off. + + +[Restrictions:] + +These styles are part of the USER-YAFF package. They are only +enabled if LAMMPS was built with that package. See the "Build +package"_Build_package.html doc page for more info. + +[Related commands:] + +"pair_coeff"_pair_coeff.html + +[Default:] none + diff --git a/doc/src/pair_mm3_switch3_coulgauss.txt b/doc/src/pair_mm3_switch3_coulgauss.txt new file mode 100644 index 0000000000000000000000000000000000000000..3e0e24150e2c1e2a8f11ee8eb085599797ebfc1c --- /dev/null +++ b/doc/src/pair_mm3_switch3_coulgauss.txt @@ -0,0 +1,88 @@ +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Commands_all.html) + +:line + +pair_style mm3/switch3/coulgauss/long command :h3 + +[Syntax:] + +pair_style style args :pre + +style = {mm3/switch3/coulgauss/long} +args = list of arguments for a particular style :ul + {mm3/switch3/coulgauss/long} args = cutoff (cutoff2) width + cutoff = global cutoff for MM3 (and Coulombic if only 1 arg) (distance units) + cutoff2 = global cutoff for Coulombic (optional) (distance units) + width = width parameter of the smoothing function (distance units) :pre + +[Examples:] + +pair_style mm3/switch3/coulgauss/long 12.0 3.0 +pair_coeff 1 0.2 2.5 1.2 :pre + +pair_style mm3/switch3/coulgauss/long 12.0 10.0 3.0 +pair_coeff 1 0.2 2.5 1.2 :pre + +[Description:] + +The {mm3/switch3/coulgauss} style evaluates the MM3 +vdW potential "(Allinger)"_#mm3-allinger1989 + +:c,image(Eqs/pair_mm3_switch3.jpg) + +, which goes smoothly to zero at the cutoff r_c as defined +by the switching function + +:c,image(Eqs/pair_switch3.jpg) + +where w is the width defined in the arguments. This potential +is combined with Coulomb interaction between Gaussian charge densities: + +:c,image(Eqs/pair_coulgauss.jpg) + +where qi and qj are the +charges on the 2 atoms, epsilon is the dielectric constant which +can be set by the "dielectric"_dielectric.html command, gamma_i and gamma_j +are the widths of the Gaussian charge distribution and erf() is the error-function. +This style has to be used in conjunction with the "kspace_style"_kspace_style.html command + +If one cutoff is specified it is used for both the vdW and Coulomb +terms. If two cutoffs are specified, the first is used as the cutoff +for the vdW terms, and the second is the cutoff for the Coulombic term. + +The following coefficients must be defined for each pair of atoms +types via the "pair_coeff"_pair_coeff.html command as in the examples +above, or in the data file or restart files read by the +"read_data"_read_data.html or "read_restart"_read_restart.html +commands: + +epsilon (energy) +r_v (distance) +gamma (distance) :ul + +:line + +[Mixing, shift, table, tail correction, restart, rRESPA info]: + +Mixing rules are fixed for this style as defined above. + +Shifting the potential energy is not necessary because the switching +function ensures that the potential is zero at the cut-off. + + +[Restrictions:] + +These styles are part of the USER-YAFF package. They are only +enabled if LAMMPS was built with that package. See the "Build +package"_Build_package.html doc page for more info. + +[Related commands:] + +"pair_coeff"_pair_coeff.html + +[Default:] none + diff --git a/doc/src/pair_style.txt b/doc/src/pair_style.txt index 714ec55d2e115a9affe382f2a6aca1e8b44b2a0b..978277245607446d9a1abb3214dfbc6949035276 100644 --- a/doc/src/pair_style.txt +++ b/doc/src/pair_style.txt @@ -220,6 +220,7 @@ accelerated styles exist. "lj/sf/dipole/sf"_pair_dipole.html - LJ with dipole interaction with shifted forces "lj/smooth"_pair_lj_smooth.html - smoothed Lennard-Jones potential "lj/smooth/linear"_pair_lj_smooth_linear.html - linear smoothed LJ potential +"lj/switch3/coulgauss"_pair_lj_switch3_coulgauss - smoothed LJ vdW potential with Gaussian electrostatics "lj96/cut"_pair_lj96.html - Lennard-Jones 9/6 potential "lubricate"_pair_lubricate.html - hydrodynamic lubrication forces "lubricate/poly"_pair_lubricate.html - hydrodynamic lubrication forces with polydispersity @@ -232,6 +233,7 @@ accelerated styles exist. "meam/sw/spline"_pair_meam_sw_spline.html - splined version of MEAM with a Stillinger-Weber term "mgpt"_pair_mgpt.html - simplified model generalized pseudopotential theory (MGPT) potential "mie/cut"_pair_mie.html - Mie potential +"mm3/switch3/coulgauss"_pair_mm3_switch3_coulgauss - smoothed MM3 vdW potential with Gaussian electrostatics "momb"_pair_momb.html - Many-Body Metal-Organic (MOMB) force field "morse"_pair_morse.html - Morse potential "morse/smooth/linear"_pair_morse.html - linear smoothed Morse potential diff --git a/doc/src/pairs.txt b/doc/src/pairs.txt index 281025240246728ab73f4f244dbefa5e63e1d1aa..62cbb7f56d018662c260feae935e7343994b1453 100644 --- a/doc/src/pairs.txt +++ b/doc/src/pairs.txt @@ -61,6 +61,7 @@ Pair Styles :h1 pair_lj_smooth pair_lj_smooth_linear pair_lj_soft + pair_lj_switch3_coulgauss pair_lubricate pair_lubricateU pair_mdf @@ -70,6 +71,7 @@ Pair Styles :h1 pair_meso pair_mgpt pair_mie + pair_mm3_switch3_coulgauss pair_momb pair_morse pair_multi_lucy diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index 5c44bf8afacabf5f89be643111740ec4f2a7279f..8807b2d680766839db90849a37662f5f53d02b6d 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -60,6 +60,7 @@ Alejandre alessandro Alessandro aliceblue +Allinger allocaters allosws AlO @@ -410,6 +411,7 @@ cossq costheta Couette coul +coulgauss coulombic Coulombic Coulombics @@ -566,6 +568,7 @@ discretized disp dissipative Dissipative +distharm dl dlambda DLAMMPS @@ -2493,6 +2496,7 @@ Springer springgreen spx spz +sqdistharm sqrt src srd @@ -2801,6 +2805,8 @@ Valone valuev Valuev Vanden +Vandenbrande +Vanduyfhuys varavg Varshalovich Varshney @@ -2958,6 +2964,8 @@ xy xyz xz xzhou +YAFF +yaff Yamada Yazdani Ybar @@ -2976,6 +2984,7 @@ ys ysu yu Yu +Yuh yukawa Yukawa Yusof diff --git a/examples/USER/yaff/README b/examples/USER/yaff/README new file mode 100644 index 0000000000000000000000000000000000000000..af43a61e0842c6e80369daab2d997ad1f54677dc --- /dev/null +++ b/examples/USER/yaff/README @@ -0,0 +1,7 @@ +mof5: + NPT simulation of MOF5 using a QuickFF force field + +mil53al: + NPT simulation of MIL-53(Al) using a QuickFF force field. + If the pressure is high enough (for instance 2000 atm), + a phase transition from large pore to narrow pore is observed diff --git a/examples/USER/yaff/mil53al/lammps.data b/examples/USER/yaff/mil53al/lammps.data new file mode 100644 index 0000000000000000000000000000000000000000..7b73c99357e3caa3472acc08ebf4d33a324e935b --- /dev/null +++ b/examples/USER/yaff/mil53al/lammps.data @@ -0,0 +1,1545 @@ +Generated by yaff2lammps + + 152 atoms + 184 bonds + 736 angles + 288 dihedrals + 64 impropers + + 8 atom types + 8 bond types + 34 angle types + 9 dihedral types + 3 improper types + + 0.0000000000000000000000000000000000 13.3259954452999984653160936431959271 xlo xhi + 0.0000000000000000000000000000000000 17.0769005354000000806991010904312134 ylo yhi + 0.0000000000000000000000000000000000 12.5451650575000002163505996577441692 zlo zhi + 0.2406519637999999794431005284423009 -0.0003290864999999999263892436207612 0.0000597691999999999968857904153463 xy xz yz + +Masses + + 1 15.99940000 # O_HY + 2 15.99940000 # O_CA + 3 1.00794000 # H_HY + 4 1.00794000 # H_PH + 5 26.98153860 # AL + 6 12.01070000 # C_PH + 7 12.01070000 # C_PC + 8 12.01070000 # C_CA + +Bond Coeffs + + 1 567.89714613 0.99006574 + 2 149.93642745 1.86984652 + 3 111.04240192 1.91161348 + 4 389.90538840 1.09141352 + 5 491.67603879 1.38895490 + 6 451.37211172 1.40304450 + 7 668.04674737 1.27972749 + 8 320.55756064 1.49110450 + +Angle Coeffs + + 1 cosine/periodic 2.83639133 1 4 + 2 cross 6.00819953 13.51503788 20.21646410 1.85789452 0.98840688 111.64709450 + 3 cross 6.00819953 20.21646410 13.51503788 0.98840688 1.85789452 111.64709450 + 4 cross 44.73850113 10.65965583 10.65965583 1.85789452 1.85789452 128.05371526 + 5 cross 79.26686011 18.67531488 42.84377495 1.90495331 1.27905582 132.82471928 + 6 cross 79.26686011 42.84377495 18.67531488 1.27905582 1.90495331 132.82471928 + 7 cross -6.85938357 0.00000000 0.00000000 1.85789452 1.85789452 0.00000000 + 8 cross 20.15880651 47.33122583 34.90884408 1.90495331 1.85789452 89.96038503 + 9 cross 20.15880651 34.90884408 47.33122583 1.85789452 1.90495331 89.96038503 + 10 cross 26.34746514 0.00000000 0.00000000 1.90495331 1.90495331 0.00000000 + 11 cross 29.49811022 32.88373608 17.10597622 1.09150478 1.40308083 119.48992692 + 12 cross 29.49811022 17.10597622 32.88373608 1.40308083 1.09150478 119.48992692 + 13 cross 130.12394367 9.80817840 18.96121618 1.40308083 1.38855980 120.04435536 + 14 cross 130.12394367 18.96121618 9.80817840 1.38855980 1.40308083 120.04435536 + 15 cross 26.93982909 21.36148219 26.91818347 1.38855980 1.09150478 120.51713090 + 16 cross 26.93982909 26.91818347 21.36148219 1.09150478 1.38855980 120.51713090 + 17 cross 69.39565871 31.02625485 12.91121121 1.49380304 1.40308083 120.04236743 + 18 cross 69.39565871 12.91121121 31.02625485 1.40308083 1.49380304 120.04236743 + 19 cross 132.39591455 8.36520076 8.36520076 1.40308083 1.40308083 119.90683966 + 20 cross 101.87765421 105.70691653 47.75221042 1.27905582 1.49380304 117.59476167 + 21 cross 101.87765421 47.75221042 105.70691653 1.49380304 1.27905582 117.59476167 + 22 cross 183.45287073 91.94550669 91.94550669 1.27905582 1.27905582 124.82435184 + 23 harmonic 16.58040240 109.62517017 + 24 harmonic 17.35339453 114.44875517 + 25 harmonic 17.77569321 132.30806010 + 26 harmonic 31.05808424 89.91290461 + 27 harmonic 35.90327756 119.61990442 + 28 harmonic 65.78425626 120.00645318 + 29 harmonic 31.59874504 120.45871258 + 30 harmonic 43.33676649 120.04493381 + 31 harmonic 62.87326877 119.94842490 + 32 harmonic 75.47920221 117.59298491 + 33 harmonic 76.76979213 124.86144100 + 34 cosine/squared 1689.15160421 180.00000000 + +Dihedral Coeffs + + 1 1 3.73165017 2 -180.00000000 + 2 1 2.24530337 2 -180.00000000 + 3 1 4.66917332 2 -180.00000000 + 4 1 3.98899930 2 -180.00000000 + 5 1 3.29635668 2 -180.00000000 + 6 1 1.54619053 2 -180.00000000 + 7 1 3.86252462 2 -180.00000000 + 8 1 2.05124797 2 -180.00000000 + 9 1 2.35456853 2 -180.00000000 + +Improper Coeffs + + 1 9.10278571 0.00000000 + 2 167.11786187 0.00000000 + 3 18.17859622 0.00000000 + +Pair Coeffs + + 1 0.059000000000 1.820000000000 1.132500000000 # O_HY + 2 0.059000000000 1.820000000000 1.132500000000 # O_CA + 3 0.016000000000 1.600000000000 0.730800000000 # H_HY + 4 0.020000000000 1.620000000000 0.730800000000 # H_PH + 5 0.116000000000 2.360000000000 1.674200000000 # AL + 6 0.056000000000 1.940000000000 1.170300000000 # C_PH + 7 0.056000000000 1.940000000000 1.170300000000 # C_PC + 8 0.056000000000 1.940000000000 1.170300000000 # C_CA + +Atoms + + 1 1 1 -1.2098756939999999460155777342151850 6.7153870720493431534237060986924917 4.2828041318282634719594170746859163 8.5866133816897338704166031675413251 + 2 1 1 -1.2098756939999999460155777342151850 13.3783843949194771738575582276098430 4.2828041318282634719594170746859163 8.5866133816897338704166031675413251 + 3 1 1 -1.2098756939999999460155777342151850 3.5035237129981489090368995675817132 12.8223120918310673488349493709392846 2.3141018836642901490563417610246688 + 4 1 1 -1.2098756939999999460155777342151850 10.1665216355380785273609944852069020 12.8223120918310673488349493709392846 2.3141018836642901490563417610246688 + 5 1 1 -1.2098756939999999460155777342151850 6.8349996196255871083735655702184886 12.8213427865959719298416530364193022 3.9586200971404887916094139654887840 + 6 1 1 -1.2098756939999999460155777342151850 13.4979977420554568823263252852484584 12.8213427865959701534848136361688375 3.9586200971404887916094139654887840 + 7 1 1 -1.2098756939999999460155777342151850 3.3839079367670850118088310409802943 4.2840038831740319125174210057593882 10.2311117738051464698401105124503374 + 8 1 1 -1.2098756939999999460155777342151850 10.0469052596372208085995225701481104 4.2840038831740310243390013056341559 10.2311117738051464698401105124503374 + 9 1 2 -0.7445643530000000120949721349461470 1.2589905770693332609511116970679723 14.0689460511913626561408818815834820 1.8089686548556627165851296012988314 + 10 1 2 -0.7445643530000000120949721349461470 7.9219883930013077488752060162369162 14.0689460511913626561408818815834820 1.8089686548556627165851296012988314 + 11 1 2 -0.7445643530000000120949721349461470 4.4707674159202488439746048243250698 5.5288543253806796684557411936111748 8.0795827217564895050827544764615595 + 12 1 2 -0.7445643530000000120949721349461470 11.1337651385702471884542319457978010 5.5288543253806796684557411936111748 8.0795827217564895050827544764615595 + 13 1 2 -0.7445643530000000120949721349461470 1.2229986327132931211991717646014877 2.7734064633669284205552685307338834 10.4955229434339933902720076730474830 + 14 1 2 -0.7445643530000000120949721349461470 7.8859965552532269583707602578215301 2.7734064633669279764660586806712672 10.4955229434339933902720076730474830 + 15 1 2 -0.7445643530000000120949721349461470 4.6742044121247552368458855198696256 11.3101997821180297876253462163731456 4.2205434978126090683758775412570685 + 16 1 2 -0.7445643530000000120949721349461470 11.3372021347747544695039323414675891 11.3101997821180297876253462163731456 4.2205434978126090683758775412570685 + 17 1 2 -0.7445643530000000120949721349461470 5.5525225224355230224659862869884819 5.7375722500320405217166808142792434 10.5597464481615510578649264061823487 + 18 1 2 -0.7445643530000000120949721349461470 12.2155206315393947136271890485659242 5.7375722500320396335382611141540110 10.5597464481615510578649264061823487 + 19 1 2 -0.7445643530000000120949721349461470 2.3407580474861306996103849087376148 14.2746180205582611222325795097276568 4.2891813575851065465371902973856777 + 20 1 2 -0.7445643530000000120949721349461470 9.0037557701361325968036908307112753 14.2746180205582593458757401094771922 4.2891813575851065465371902973856777 + 21 1 2 -0.7445643530000000120949721349461470 5.7700538186296190801272132375743240 11.5405550825335865283705061301589012 1.8195962287082991792885877657681704 + 22 1 2 -0.7445643530000000120949721349461470 12.4330511414997584296315835672430694 11.5405550825335865283705061301589012 1.8195962287082991792885877657681704 + 23 1 2 -0.7445643530000000120949721349461470 2.3187182063798501552298603201052174 3.0004106930250986629005183203844354 8.0941017932647998378570264321751893 + 24 1 2 -0.7445643530000000120949721349461470 8.9817157424659139763889470486901700 3.0004106930250982188113084703218192 8.0941017932647998378570264321751893 + 25 1 2 -0.7445643530000000120949721349461470 5.6502316143841939677372465666849166 3.0020828644755410685718288732459769 10.7252833635608215701040535350330174 + 26 1 2 -0.7445643530000000120949721349461470 12.3132293370342029703579100896604359 3.0020828644755406244826190231833607 10.7252833635608215701040535350330174 + 27 1 2 -0.7445643530000000120949721349461470 2.4385834497316842828240623930469155 11.5390906922377300958260093466378748 4.4515765998441914064187585609033704 + 28 1 2 -0.7445643530000000120949721349461470 9.1015815721615513922415630077011883 11.5390906922377300958260093466378748 4.4515765998441914064187585609033704 + 29 1 2 -0.7445643530000000120949721349461470 5.6722249356407399289992099511437118 14.2759679355859336880030241445638239 1.9851114660623476737555392901413143 + 30 1 2 -0.7445643530000000120949721349461470 12.3352230580706052620598711655475199 14.2759679355859336880030241445638239 1.9851114660623476737555392901413143 + 31 1 2 -0.7445643530000000120949721349461470 2.2210375988136932257077660324284807 5.7360095476548309534337022341787815 8.2560278212604032432864187285304070 + 32 1 2 -0.7445643530000000120949721349461470 8.8840349216838294665876674116589129 5.7360095476548309534337022341787815 8.2560278212604032432864187285304070 + 33 1 2 -0.7445643530000000120949721349461470 1.3426929459297589630750735523179173 11.3116032563078015016344579635187984 2.0503536005570812683629355888115242 + 34 1 2 -0.7445643530000000120949721349461470 8.0056903754078607704514070064760745 11.3116032563078015016344579635187984 2.0503536005570812683629355888115242 + 35 1 2 -0.7445643530000000120949721349461470 4.5544349664199854643698017753195018 2.7717800127098115581247839145362377 8.3243804039794877525082483771257102 + 36 1 2 -0.7445643530000000120949721349461470 11.2174326890699891379199470975436270 2.7717800127098111140355740644736215 8.3243804039794877525082483771257102 + 37 1 2 -0.7445643530000000120949721349461470 1.1392762498379640501156018217443489 5.5307225590439976770085195312276483 10.7363410985781104756142667611129582 + 38 1 2 -0.7445643530000000120949721349461470 7.8022735727081062861998361768200994 5.5307225590439967888300998311024159 10.7363410985781104756142667611129582 + 39 1 2 -0.7445643530000000120949721349461470 4.5904838756409240829725604271516204 14.0673016329479629860088607529178262 4.4653546409977158404558394977357239 + 40 1 2 -0.7445643530000000120949721349461470 11.2534815982909286447011254495009780 14.0673016329479629860088607529178262 4.4653546409977158404558394977357239 + 41 1 3 0.5185263799999999534406924794893712 6.7033022636923433879019285086542368 4.6749920341423978342731970769818872 7.7032864563136307367585686733946204 + 42 1 3 0.5185263799999999534406924794893712 13.3662995865624836255847185384482145 4.6749920341423969460947773768566549 7.7032864563136307367585686733946204 + 43 1 3 0.5185263799999999534406924794893712 3.4911946343224471434041333850473166 13.2152028467359965446803471422754228 1.4310936932968010282252180331852287 + 44 1 3 0.5185263799999999534406924794893712 10.1541925435363875607208683504723012 13.2152028467359947683235077420249581 1.4310936932968010282252180331852287 + 45 1 3 0.5185263799999999534406924794893712 6.8226445109087379137235984671860933 13.2137951050594022461837084847502410 4.8418266265675384829592076130211353 + 46 1 3 0.5185263799999999534406924794893712 13.4856422335587406990953240892849863 13.2137951050594004698268690844997764 4.8418266265675384829592076130211353 + 47 1 3 0.5185263799999999534406924794893712 3.3718390257973132051461107039358467 4.6776567735304457329448268865235150 11.1137888972667671083627283223904669 + 48 1 3 0.5185263799999999534406924794893712 10.0348367484473133259825772256590426 4.6776567735304457329448268865235150 11.1137888972667671083627283223904669 + 49 1 4 0.1519691589999999925542084611151950 2.3150111389406484718733736372087151 15.7561391408537811997803146368823946 0.3851155792041089376276374878216302 + 50 1 4 0.1519691589999999925542084611151950 8.9780090614805825310895670554600656 15.7561391408537811997803146368823946 0.3851155792041089376276374878216302 + 51 1 4 0.1519691589999999925542084611151950 5.5251997890205615249215043149888515 7.2122227707358952386584860505536199 6.6487285031154712555689911823719740 + 52 1 4 0.1519691589999999925542084611151950 12.1881975116705607575795511365868151 7.2122227707358943504800663504283875 6.6487285031154712555689911823719740 + 53 1 4 0.1519691589999999925542084611151950 2.1513768927132632668985934287775308 0.7793385220131339163884831577888690 11.5512885193109173798120536957867444 + 54 1 4 0.1519691589999999925542084611151950 8.8143748152531955497579474467784166 0.7793385220131333612769708452105988 11.5512885193109173798120536957867444 + 55 1 4 0.1519691589999999925542084611151950 5.6018395825408164867553750809747726 9.3122840258958383685694570885971189 5.2698941286277101170298919896595180 + 56 1 4 0.1519691589999999925542084611151950 12.2648377049706844843512953957542777 9.3122840258958365922126176883466542 5.2698941286277101170298919896595180 + 57 1 4 0.1519691589999999925542084611151950 4.6402743945654769675002171425148845 7.7570678771031307263683629571460187 11.5742489313024528030382498400285840 + 58 1 4 0.1519691589999999925542084611151950 11.3032725036693442177693214034661651 7.7570678771031298381899432570207864 11.5742489313024528030382498400285840 + 59 1 4 0.1519691589999999925542084611151950 1.4289916763510370767420454285456799 16.2937782613533990172527410322800279 5.3045340265619520536688469292130321 + 60 1 4 0.1519691589999999925542084611151950 8.0919889992211722073989221826195717 16.2937782613533954645390622317790985 5.3045340265619520536688469292130321 + 61 1 4 0.1519691589999999925542084611151950 4.7188867445007129930445444188080728 9.8576336883462030158398192725144327 0.4106092614660375450519325113418745 + 62 1 4 0.1519691589999999925542084611151950 11.3818848669305765497483662329614162 9.8576336883462012394829798722639680 0.4106092614660375450519325113418745 + 63 1 4 0.1519691589999999925542084611151950 1.2672446555857233008168805099558085 1.3174924965356069606059463694691658 6.6860210385656291265377149102278054 + 64 1 4 0.1519691589999999925542084611151950 7.9302420850638259963716336642391980 1.3174924965356062944721315943752415 6.6860210385656291265377149102278054 + 65 1 4 0.1519691589999999925542084611151950 4.5976454677133533621713468164671212 1.3167699335050779829714429070008919 12.1295236794261001023187418468296528 + 66 1 4 0.1519691589999999925542084611151950 11.2606431903633534830078133381903172 1.3167699335050770947930232068756595 12.1295236794261001023187418468296528 + 67 1 4 0.1519691589999999925542084611151950 1.3874618992261169569957246494595893 9.8559985125562405983146163634955883 5.8599964503548598315774142974987626 + 68 1 4 0.1519691589999999925542084611151950 8.0504595152681570624508822220377624 9.8559985125562370456009375629946589 5.8599964503548598315774142974987626 + 69 1 4 0.1519691589999999925542084611151950 4.7594768289705067232375768071506172 16.2928537268444415531121194362640381 0.9657755315474335633396663070016075 + 70 1 4 0.1519691589999999925542084611151950 11.4224745516205032913603645283728838 16.2928537268444380003984406357631087 0.9657755315474335633396663070016075 + 71 1 4 0.1519691589999999925542084611151950 1.3090438015508472080483670652029105 7.7552807308893543236649747996125370 7.2413518635770861564537881349679083 + 72 1 4 0.1519691589999999925542084611151950 7.9720419239807123190644233545754105 7.7552807308893543236649747996125370 7.2413518635770861564537881349679083 + 73 1 4 0.1519691589999999925542084611151950 2.2705998288829158937573993171099573 9.3150495706767486581156845204532146 0.9992716491478911278178998145449441 + 74 1 4 0.1519691589999999925542084611151950 8.9335973516429838525709783425554633 9.3150495706767468817588451202027500 0.9992716491478911278178998145449441 + 75 1 4 0.1519691589999999925542084611151950 5.4818417666741723337509029079228640 0.7738074986951422040704073879169300 7.2745362714613577281852485612034798 + 76 1 4 0.1519691589999999925542084611151950 12.1448398891040394431684035225771368 0.7738074986951416489588950753386598 7.2745362714613577281852485612034798 + 77 1 4 0.1519691589999999925542084611151950 2.1937673007028561933395849337102845 7.2151514782616867904607715900056064 12.1654336247804373272174416342750192 + 78 1 4 0.1519691589999999925542084611151950 8.8567648234629228198855344089679420 7.2151514782616867904607715900056064 12.1654336247804373272174416342750192 + 79 1 4 0.1519691589999999925542084611151950 5.6453609802319695276651145832147449 15.7507340863305405065375452977605164 5.8955942218219092865183483809232712 + 80 1 4 0.1519691589999999925542084611151950 12.3083583031021088771694849128834903 15.7507340863305387301807058975100517 5.8955942218219092865183483809232712 + 81 1 5 2.0909989460000000249806362262461334 1.7220884276321977157664377955370583 4.2577041896622827010787659673951566 9.3989182512193298890679216128773987 + 82 1 5 2.0909989460000000249806362262461334 8.3850859503922716697843497968278825 4.2577041896622818129003462672699243 9.3989182512193298890679216128773987 + 83 1 5 2.0909989460000000249806362262461334 5.1732895332567778723387164063751698 12.7961141377704930022218832164071500 3.1261246626124026271043021552031860 + 84 1 5 2.0909989460000000249806362262461334 11.8362872559067771049967632279731333 12.7961141377704930022218832164071500 3.1261246626124026271043021552031860 + 85 1 5 2.0909989460000000249806362262461334 1.8417926657907308651829225709661841 12.7961386721601790839031309587880969 3.1465567471285815770443150540813804 + 86 1 5 2.0909989460000000249806362262461334 8.5047905883306658125775356893427670 12.7961386721601773075462915585376322 3.1465567471285815770443150540813804 + 87 1 5 2.0909989460000000249806362262461334 5.0535778772553525683974839921575040 4.2576796083468551046280481386929750 9.4188173794883720546522454242222011 + 88 1 5 2.0909989460000000249806362262461334 11.7165752001254901415450149215757847 4.2576796083468533282712087384425104 9.4188173794883720546522454242222011 + 89 1 6 -0.1065741179999999954652878386696102 1.4141707527268658761698816306306981 16.3400809537558444617388886399567127 0.2022529879698692911738078237249283 + 90 1 6 -0.1065741179999999954652878386696102 8.0771686752667974928954208735376596 16.3400809537558444617388886399567127 0.2022529879698692911738078237249283 + 91 1 6 -0.1065741179999999954652878386696102 4.6246955781035241628273979586083442 7.7975351373134911270312841224949807 6.4685670866407551926613450632430613 + 92 1 6 -0.1065741179999999954652878386696102 11.2876933007535207309501856798306108 7.7975351373134911270312841224949807 6.4685670866407551926613450632430613 + 93 1 6 -0.1065741179999999954652878386696102 1.2180418815135878318756113003473729 0.4262156085319599996275030662218342 11.9882078772904936414533949573524296 + 94 1 6 -0.1065741179999999954652878386696102 7.8810392976656951091740666015539318 0.4262156085319593334936882911279099 11.9882078772904936414533949573524296 + 95 1 6 -0.1065741179999999954652878386696102 4.6691704987195228326868345902767032 8.9605484349032789026523460051976144 5.7093670549547432813142222585156560 + 96 1 6 -0.1065741179999999954652878386696102 11.3321682213695300589506587130017579 8.9605484349032771262955066049471498 5.7093670549547432813142222585156560 + 97 1 6 -0.1065741179999999954652878386696102 5.5731262922007358540099630772601813 8.1037524473176567596510722069069743 12.0169282136407069572214822983369231 + 98 1 6 -0.1065741179999999954652878386696102 12.2361240148507377512032689992338419 8.1037524473176549832942328066565096 12.0169282136407069572214822983369231 + 99 1 6 -0.1065741179999999954652878386696102 2.3619457998798174536148053448414430 16.6401915820548325086747354362159967 5.7472080650212156172074173809960485 + 100 1 6 -0.1065741179999999954652878386696102 9.0249439223096850071215158095583320 16.6401915820548325086747354362159967 5.7472080650212156172074173809960485 + 101 1 6 -0.1065741179999999954652878386696102 5.6164918446169611598861592938192189 9.2670862695492175475919793825596571 0.2304860073834236744438896948850015 + 102 1 6 -0.1065741179999999954652878386696102 12.2794899670468264929468205082230270 9.2670862695492157712351399823091924 0.2304860073834236744438896948850015 + 103 1 6 -0.1065741179999999954652878386696102 2.1646735340058396168672061321558431 0.7266775681237089834496600815327838 6.5059044961463232681353474617935717 + 104 1 6 -0.1065741179999999954652878386696102 8.8276710567659080197699950076639652 0.7266775681237084283381477689545136 6.5059044961463232681353474617935717 + 105 1 6 -0.1065741179999999954652878386696102 5.4954840105190072563345893286168575 0.7272885255903810408639742490777280 12.3119305800847929077690423582680523 + 106 1 6 -0.1065741179999999954652878386696102 12.1584817331690135944199937512166798 0.7272885255903803747301594739838038 12.3119305800847929077690423582680523 + 107 1 6 -0.1065741179999999954652878386696102 2.2849532575684836643858943716622889 9.2651606566280424459591813501901925 6.0397320212017060470088836154900491 + 108 1 6 -0.1065741179999999954652878386696102 8.9479509802184900024712987942621112 9.2651606566280424459591813501901925 6.0397320212017060470088836154900491 + 109 1 6 -0.1065741179999999954652878386696102 5.6929776458884013834449433488771319 16.6407061629956416481945780105888844 0.5254053499251585268581266063847579 + 110 1 6 -0.1065741179999999954652878386696102 12.3559757549922686337140476098284125 16.6407061629956380954808992100879550 0.5254053499251585268581266063847579 + 111 1 6 -0.1065741179999999954652878386696102 2.2418392805257347788483457406982780 8.1017188456549362740588549058884382 6.7983615238712307160540149197913706 + 112 1 6 -0.1065741179999999954652878386696102 8.9048370031757357878632319625467062 8.1017188456549362740588549058884382 6.7983615238712307160540149197913706 + 113 1 6 -0.1065741179999999954652878386696102 1.3378988445639905524586765750427730 8.9631021552237744032254340709187090 0.5600409072322938275334536228911020 + 114 1 6 -0.1065741179999999954652878386696102 8.0008963673240636182981688762083650 8.9631021552237744032254340709187090 0.5600409072322938275334536228911020 + 115 1 6 -0.1065741179999999954652878386696102 4.5490129888977781646985931729432195 0.4220911682453661883940299048845191 6.8353863705893926905332591559272259 + 116 1 6 -0.1065741179999999954652878386696102 11.2120103117679210669166423031128943 0.4220911682453655777713663610484218 6.8353863705893926905332591559272259 + 117 1 6 -0.1065741179999999954652878386696102 1.2931697223744265112799212147365324 7.8002126371303779350796503422316164 12.3459248034638537916407585726119578 + 118 1 6 -0.1065741179999999954652878386696102 7.9561673517424651436158455908298492 7.8002126371303779350796503422316164 12.3459248034638537916407585726119578 + 119 1 6 -0.1065741179999999954652878386696102 4.7449200366800932116007061267737299 16.3360242466580523057473328663036227 6.0761321312451688214650857844389975 + 120 1 6 -0.1065741179999999954652878386696102 11.4079181457839649027619088883511722 16.3360242466580523057473328663036227 6.0761321312451688214650857844389975 + 121 1 7 -0.1475182609999999838734652257699054 6.8625612135502791488761431537568569 15.8993490470899345723410078790038824 0.7462376897096898442640622306498699 + 122 1 7 -0.1475182609999999838734652257699054 13.5255589362002837106047081761062145 15.8993490470899345723410078790038824 0.7462376897096898442640622306498699 + 123 1 7 -0.1475182609999999838734652257699054 3.4109618177191207699650021822890267 7.3586684715520229715934874548111111 7.0160031640105362527037868858315051 + 124 1 7 -0.1475182609999999838734652257699054 10.0739595403691204467122588539496064 7.3586684715520220834150677546858788 7.0160031640105362527037868858315051 + 125 1 7 -0.1475182609999999838734652257699054 0.0473415571287404482458960330859554 1.1642431334386127428359714031103067 11.7662756401595451904995570657774806 + 126 1 7 -0.1475182609999999838734652257699054 6.7103393197567315908713680983055383 1.1642431334386122987467615530476905 11.7662756401595451904995570657774806 + 127 1 7 -0.1475182609999999838734652257699054 3.4989796446374041849480818200390786 9.7004408763167386808845549239777029 5.4908995164190423921013461949769408 + 128 1 7 -0.1475182609999999838734652257699054 10.1619773672874043057845483417622745 9.7004408763167351281708761234767735 5.4908995164190423921013461949769408 + 129 1 7 -0.1475182609999999838734652257699054 6.7423569930703077801581457606516778 7.3609697445742119370493128371890634 11.7989650409209776427132965181954205 + 130 1 7 -0.1475182609999999838734652257699054 13.4053547157203087891730319825001061 7.3609697445742101606924734369385988 11.7989650409209776427132965181954205 + 131 1 7 -0.1475182609999999838734652257699054 3.5309961971541143910258142568636686 15.8971691701905903926217433763667941 5.5291046875368072832657162507530302 + 132 1 7 -0.1475182609999999838734652257699054 10.1939941196940502265988470753654838 15.8971691701905903926217433763667941 5.5291046875368072832657162507530302 + 133 1 7 -0.1475182609999999838734652257699054 0.1675527733465424773395824331601034 9.7025773236021279899432556703686714 0.7790777077228052682755787827773020 + 134 1 7 -0.1475182609999999838734652257699054 6.8305507092124733148352788703050464 9.7025773236021279899432556703686714 0.7790777077228052682755787827773020 + 135 1 7 -0.1475182609999999838734652257699054 3.3788922890951527122638253786135465 1.1619455116749999312730778910918161 7.0543290948871408829745632829144597 + 136 1 7 -0.1475182609999999838734652257699054 10.0418900117451528331002919003367424 1.1619455116749990430946581909665838 7.0543290948871408829745632829144597 + 137 1 8 0.8460320690000000531938439962686971 6.8158435147629843342542699247132987 14.6566180822766263247558526927605271 1.5740911748083665777642181637929752 + 138 1 8 0.8460320690000000531938439962686971 13.4788412374129844550907364464364946 14.6566180822766263247558526927605271 1.5740911748083665777642181637929752 + 139 1 8 0.8460320690000000531938439962686971 3.3645677309728028170354718895396218 6.1163711265005069606104370905086398 7.8445080317144935122541937744244933 + 140 1 8 0.8460320690000000531938439962686971 10.0275656535127346558056160574778914 6.1163711265005060724320173903834075 7.8445080317144935122541937744244933 + 141 1 8 0.8460320690000000531938439962686971 0.0895185086047598360670107808800822 2.4034399294411441516672311990987509 10.9344634655011496704446471994742751 + 142 1 8 0.8460320690000000531938439962686971 6.7525164044927041828714209259487689 2.4034399294411437075780213490361348 10.9344634655011496704446471994742751 + 143 1 8 0.8460320690000000531938439962686971 3.5408813332418129782297455676598474 10.9401060095762083790305041475221515 4.6597715425177188564020980265922844 + 144 1 8 0.8460320690000000531938439962686971 10.2038790558918126549770022393204272 10.9401060095762083790305041475221515 4.6597715425177188564020980265922844 + 145 1 8 0.8460320690000000531938439962686971 6.6960210710517644727701735973823816 6.1182853663466376659130219195503742 10.9710262110644158894956490257754922 + 146 1 8 0.8460320690000000531938439962686971 13.3590187937017663699634795193560421 6.1182853663466376659130219195503742 10.9710262110644158894956490257754922 + 147 1 8 0.8460320690000000531938439962686971 3.4843639165565232218568780808709562 14.6549005775032945564362307777628303 4.7005710286790414187407805002294481 + 148 1 8 0.8460320690000000531938439962686971 10.1473614393165885161351980059407651 14.6549005775032945564362307777628303 4.7005710286790414187407805002294481 + 149 1 8 0.8460320690000000531938439962686971 0.2093718873377909683863862255748245 10.9417709628228116969239636091515422 1.6109077843317383127441644319333136 + 150 1 8 0.8460320690000000531938439962686971 6.8723694634018412941145470540504903 10.9417709628228116969239636091515422 1.6109077843317383127441644319333136 + 151 1 8 0.8460320690000000531938439962686971 3.4210085616731804591950094618368894 2.4015655238668487392317274498054758 7.8855124055115330961029940226580948 + 152 1 8 0.8460320690000000531938439962686971 10.0840062843231805800314759835600853 2.4015655238668482951425175997428596 7.8855124055115330961029940226580948 + +Bonds + + 1 1 41 1 + 2 1 42 2 + 3 1 43 3 + 4 1 44 4 + 5 1 45 5 + 6 1 46 6 + 7 1 47 7 + 8 1 48 8 + 9 2 81 2 + 10 2 81 7 + 11 3 81 13 + 12 3 81 23 + 13 3 81 31 + 14 3 81 37 + 15 2 82 1 + 16 2 82 8 + 17 3 82 14 + 18 3 82 24 + 19 3 82 32 + 20 3 82 38 + 21 2 83 3 + 22 2 83 5 + 23 3 83 15 + 24 3 83 21 + 25 3 83 29 + 26 3 83 39 + 27 2 84 4 + 28 2 84 6 + 29 3 84 16 + 30 3 84 22 + 31 3 84 30 + 32 3 84 40 + 33 2 85 3 + 34 2 85 6 + 35 3 85 9 + 36 3 85 19 + 37 3 85 27 + 38 3 85 33 + 39 2 86 4 + 40 2 86 5 + 41 3 86 10 + 42 3 86 20 + 43 3 86 28 + 44 3 86 34 + 45 2 87 1 + 46 2 87 7 + 47 3 87 11 + 48 3 87 17 + 49 3 87 25 + 50 3 87 35 + 51 2 88 2 + 52 2 88 8 + 53 3 88 12 + 54 3 88 18 + 55 3 88 26 + 56 3 88 36 + 57 4 89 49 + 58 4 90 50 + 59 4 91 51 + 60 4 92 52 + 61 4 93 53 + 62 5 93 89 + 63 4 94 54 + 64 5 94 90 + 65 4 95 55 + 66 5 95 91 + 67 4 96 56 + 68 5 96 92 + 69 4 97 57 + 70 4 98 58 + 71 4 99 59 + 72 4 100 60 + 73 4 101 61 + 74 5 101 97 + 75 4 102 62 + 76 5 102 98 + 77 4 103 63 + 78 5 103 99 + 79 4 104 64 + 80 5 104 100 + 81 4 105 65 + 82 4 106 66 + 83 4 107 67 + 84 4 108 68 + 85 4 109 69 + 86 5 109 105 + 87 4 110 70 + 88 5 110 106 + 89 4 111 71 + 90 5 111 107 + 91 4 112 72 + 92 5 112 108 + 93 4 113 73 + 94 4 114 74 + 95 4 115 75 + 96 4 116 76 + 97 4 117 77 + 98 5 117 113 + 99 4 118 78 + 100 5 118 114 + 101 4 119 79 + 102 5 119 115 + 103 4 120 80 + 104 5 120 116 + 105 6 121 90 + 106 6 121 109 + 107 6 122 89 + 108 6 122 110 + 109 6 123 91 + 110 6 123 111 + 111 6 124 92 + 112 6 124 112 + 113 6 125 93 + 114 6 125 106 + 115 6 126 94 + 116 6 126 105 + 117 6 127 95 + 118 6 127 107 + 119 6 128 96 + 120 6 128 108 + 121 6 129 97 + 122 6 129 118 + 123 6 130 98 + 124 6 130 117 + 125 6 131 99 + 126 6 131 119 + 127 6 132 100 + 128 6 132 120 + 129 6 133 102 + 130 6 133 113 + 131 6 134 101 + 132 6 134 114 + 133 6 135 103 + 134 6 135 115 + 135 6 136 104 + 136 6 136 116 + 137 7 137 10 + 138 7 137 29 + 139 8 137 121 + 140 7 138 9 + 141 7 138 30 + 142 8 138 122 + 143 7 139 11 + 144 7 139 31 + 145 8 139 123 + 146 7 140 12 + 147 7 140 32 + 148 8 140 124 + 149 7 141 13 + 150 7 141 26 + 151 8 141 125 + 152 7 142 14 + 153 7 142 25 + 154 8 142 126 + 155 7 143 15 + 156 7 143 27 + 157 8 143 127 + 158 7 144 16 + 159 7 144 28 + 160 8 144 128 + 161 7 145 17 + 162 7 145 38 + 163 8 145 129 + 164 7 146 18 + 165 7 146 37 + 166 8 146 130 + 167 7 147 19 + 168 7 147 39 + 169 8 147 131 + 170 7 148 20 + 171 7 148 40 + 172 8 148 132 + 173 7 149 22 + 174 7 149 33 + 175 8 149 133 + 176 7 150 21 + 177 7 150 34 + 178 8 150 134 + 179 7 151 23 + 180 7 151 35 + 181 8 151 135 + 182 7 152 24 + 183 7 152 36 + 184 8 152 136 + +Angles + + 1 1 37 81 13 + 2 1 37 81 23 + 3 1 37 81 31 + 4 1 23 81 13 + 5 1 31 81 13 + 6 1 31 81 23 + 7 1 38 82 14 + 8 1 38 82 24 + 9 1 38 82 32 + 10 1 24 82 14 + 11 1 32 82 14 + 12 1 32 82 24 + 13 1 39 83 15 + 14 1 39 83 21 + 15 1 39 83 29 + 16 1 21 83 15 + 17 1 29 83 15 + 18 1 29 83 21 + 19 1 40 84 16 + 20 1 40 84 22 + 21 1 40 84 30 + 22 1 22 84 16 + 23 1 30 84 16 + 24 1 30 84 22 + 25 1 33 85 9 + 26 1 33 85 19 + 27 1 33 85 27 + 28 1 19 85 9 + 29 1 27 85 9 + 30 1 27 85 19 + 31 1 34 86 10 + 32 1 34 86 20 + 33 1 34 86 28 + 34 1 20 86 10 + 35 1 28 86 10 + 36 1 28 86 20 + 37 1 35 87 11 + 38 1 35 87 17 + 39 1 35 87 25 + 40 1 17 87 11 + 41 1 25 87 11 + 42 1 25 87 17 + 43 1 36 88 12 + 44 1 36 88 18 + 45 1 36 88 26 + 46 1 18 88 12 + 47 1 26 88 12 + 48 1 26 88 18 + 49 2 82 1 41 + 50 2 87 1 41 + 51 4 87 1 82 + 52 2 81 2 42 + 53 4 88 2 81 + 54 2 88 2 42 + 55 2 85 3 43 + 56 4 85 3 83 + 57 2 83 3 43 + 58 2 84 4 44 + 59 4 86 4 84 + 60 2 86 4 44 + 61 2 83 5 45 + 62 4 86 5 83 + 63 2 86 5 45 + 64 2 84 6 46 + 65 4 85 6 84 + 66 2 85 6 46 + 67 2 81 7 47 + 68 4 87 7 81 + 69 2 87 7 47 + 70 2 82 8 48 + 71 4 88 8 82 + 72 2 88 8 48 + 73 6 138 9 85 + 74 6 137 10 86 + 75 6 139 11 87 + 76 6 140 12 88 + 77 6 141 13 81 + 78 6 142 14 82 + 79 6 143 15 83 + 80 6 144 16 84 + 81 6 145 17 87 + 82 6 146 18 88 + 83 6 147 19 85 + 84 6 148 20 86 + 85 6 150 21 83 + 86 6 149 22 84 + 87 6 151 23 81 + 88 6 152 24 82 + 89 6 142 25 87 + 90 6 141 26 88 + 91 6 143 27 85 + 92 6 144 28 86 + 93 6 137 29 83 + 94 6 138 30 84 + 95 6 139 31 81 + 96 6 140 32 82 + 97 6 149 33 85 + 98 6 150 34 86 + 99 6 151 35 87 + 100 6 152 36 88 + 101 6 146 37 81 + 102 6 145 38 82 + 103 6 147 39 83 + 104 6 148 40 84 + 105 8 37 81 2 + 106 8 37 81 7 + 107 10 37 81 13 + 108 10 37 81 23 + 109 10 37 81 31 + 110 7 7 81 2 + 111 8 13 81 2 + 112 8 13 81 7 + 113 8 23 81 2 + 114 8 23 81 7 + 115 10 23 81 13 + 116 8 31 81 2 + 117 8 31 81 7 + 118 10 31 81 13 + 119 10 31 81 23 + 120 8 38 82 1 + 121 8 38 82 8 + 122 10 38 82 14 + 123 10 38 82 24 + 124 10 38 82 32 + 125 7 8 82 1 + 126 8 14 82 1 + 127 8 14 82 8 + 128 8 24 82 1 + 129 8 24 82 8 + 130 10 24 82 14 + 131 8 32 82 1 + 132 8 32 82 8 + 133 10 32 82 14 + 134 10 32 82 24 + 135 7 5 83 3 + 136 8 39 83 3 + 137 8 39 83 5 + 138 10 39 83 15 + 139 10 39 83 21 + 140 10 39 83 29 + 141 8 15 83 3 + 142 8 15 83 5 + 143 8 21 83 3 + 144 8 21 83 5 + 145 10 21 83 15 + 146 8 29 83 3 + 147 8 29 83 5 + 148 10 29 83 15 + 149 10 29 83 21 + 150 7 6 84 4 + 151 8 40 84 4 + 152 8 40 84 6 + 153 10 40 84 16 + 154 10 40 84 22 + 155 10 40 84 30 + 156 8 16 84 4 + 157 8 16 84 6 + 158 8 22 84 4 + 159 8 22 84 6 + 160 10 22 84 16 + 161 8 30 84 4 + 162 8 30 84 6 + 163 10 30 84 16 + 164 10 30 84 22 + 165 8 33 85 3 + 166 8 33 85 6 + 167 10 33 85 9 + 168 10 33 85 19 + 169 10 33 85 27 + 170 7 6 85 3 + 171 8 9 85 3 + 172 8 9 85 6 + 173 8 19 85 3 + 174 8 19 85 6 + 175 10 19 85 9 + 176 8 27 85 3 + 177 8 27 85 6 + 178 10 27 85 9 + 179 10 27 85 19 + 180 8 34 86 4 + 181 8 34 86 5 + 182 10 34 86 10 + 183 10 34 86 20 + 184 10 34 86 28 + 185 7 5 86 4 + 186 8 10 86 4 + 187 8 10 86 5 + 188 8 20 86 4 + 189 8 20 86 5 + 190 10 20 86 10 + 191 8 28 86 4 + 192 8 28 86 5 + 193 10 28 86 10 + 194 10 28 86 20 + 195 8 35 87 1 + 196 8 35 87 7 + 197 10 35 87 11 + 198 10 35 87 17 + 199 10 35 87 25 + 200 7 7 87 1 + 201 8 11 87 1 + 202 8 11 87 7 + 203 8 17 87 1 + 204 8 17 87 7 + 205 10 17 87 11 + 206 8 25 87 1 + 207 8 25 87 7 + 208 10 25 87 11 + 209 10 25 87 17 + 210 8 36 88 2 + 211 8 36 88 8 + 212 10 36 88 12 + 213 10 36 88 18 + 214 10 36 88 26 + 215 7 8 88 2 + 216 8 12 88 2 + 217 8 12 88 8 + 218 8 18 88 2 + 219 8 18 88 8 + 220 10 18 88 12 + 221 8 26 88 2 + 222 8 26 88 8 + 223 10 26 88 12 + 224 10 26 88 18 + 225 12 122 89 49 + 226 13 122 89 93 + 227 15 93 89 49 + 228 12 121 90 50 + 229 13 121 90 94 + 230 15 94 90 50 + 231 12 123 91 51 + 232 13 123 91 95 + 233 15 95 91 51 + 234 12 124 92 52 + 235 13 124 92 96 + 236 15 96 92 52 + 237 15 89 93 53 + 238 13 125 93 89 + 239 12 125 93 53 + 240 15 90 94 54 + 241 13 126 94 90 + 242 12 126 94 54 + 243 15 91 95 55 + 244 13 127 95 91 + 245 12 127 95 55 + 246 13 128 96 92 + 247 12 128 96 56 + 248 15 92 96 56 + 249 12 129 97 57 + 250 13 129 97 101 + 251 15 101 97 57 + 252 15 102 98 58 + 253 12 130 98 58 + 254 13 130 98 102 + 255 12 131 99 59 + 256 13 131 99 103 + 257 15 103 99 59 + 258 12 132 100 60 + 259 13 132 100 104 + 260 15 104 100 60 + 261 15 97 101 61 + 262 13 134 101 97 + 263 12 134 101 61 + 264 15 98 102 62 + 265 13 133 102 98 + 266 12 133 102 62 + 267 15 99 103 63 + 268 13 135 103 99 + 269 12 135 103 63 + 270 15 100 104 64 + 271 13 136 104 100 + 272 12 136 104 64 + 273 15 109 105 65 + 274 12 126 105 65 + 275 13 126 105 109 + 276 12 125 106 66 + 277 13 125 106 110 + 278 15 110 106 66 + 279 12 127 107 67 + 280 13 127 107 111 + 281 15 111 107 67 + 282 12 128 108 68 + 283 13 128 108 112 + 284 15 112 108 68 + 285 15 105 109 69 + 286 13 121 109 105 + 287 12 121 109 69 + 288 15 106 110 70 + 289 13 122 110 106 + 290 12 122 110 70 + 291 15 107 111 71 + 292 13 123 111 107 + 293 12 123 111 71 + 294 13 124 112 108 + 295 12 124 112 72 + 296 15 108 112 72 + 297 12 133 113 73 + 298 13 133 113 117 + 299 15 117 113 73 + 300 15 118 114 74 + 301 12 134 114 74 + 302 13 134 114 118 + 303 12 135 115 75 + 304 13 135 115 119 + 305 15 119 115 75 + 306 12 136 116 76 + 307 13 136 116 120 + 308 15 120 116 76 + 309 15 113 117 77 + 310 13 130 117 113 + 311 12 130 117 77 + 312 13 129 118 114 + 313 12 129 118 78 + 314 15 114 118 78 + 315 15 115 119 79 + 316 13 131 119 115 + 317 12 131 119 79 + 318 15 116 120 80 + 319 13 132 120 116 + 320 12 132 120 80 + 321 17 137 121 90 + 322 17 137 121 109 + 323 19 109 121 90 + 324 17 138 122 89 + 325 17 138 122 110 + 326 19 110 122 89 + 327 17 139 123 91 + 328 17 139 123 111 + 329 19 111 123 91 + 330 17 140 124 92 + 331 17 140 124 112 + 332 19 112 124 92 + 333 19 106 125 93 + 334 17 141 125 106 + 335 17 141 125 93 + 336 19 105 126 94 + 337 17 142 126 105 + 338 17 142 126 94 + 339 19 107 127 95 + 340 17 143 127 107 + 341 17 143 127 95 + 342 19 108 128 96 + 343 17 144 128 108 + 344 17 144 128 96 + 345 17 145 129 97 + 346 17 145 129 118 + 347 19 118 129 97 + 348 19 117 130 98 + 349 17 146 130 98 + 350 17 146 130 117 + 351 17 147 131 99 + 352 17 147 131 119 + 353 19 119 131 99 + 354 17 148 132 100 + 355 17 148 132 120 + 356 19 120 132 100 + 357 19 113 133 102 + 358 17 149 133 113 + 359 17 149 133 102 + 360 19 114 134 101 + 361 17 150 134 114 + 362 17 150 134 101 + 363 19 115 135 103 + 364 17 151 135 115 + 365 17 151 135 103 + 366 19 116 136 104 + 367 17 152 136 116 + 368 17 152 136 104 + 369 21 121 137 10 + 370 21 121 137 29 + 371 22 29 137 10 + 372 21 122 138 9 + 373 21 122 138 30 + 374 22 30 138 9 + 375 21 123 139 11 + 376 21 123 139 31 + 377 22 31 139 11 + 378 21 124 140 12 + 379 21 124 140 32 + 380 22 32 140 12 + 381 22 26 141 13 + 382 21 125 141 26 + 383 21 125 141 13 + 384 22 25 142 14 + 385 21 126 142 25 + 386 21 126 142 14 + 387 22 27 143 15 + 388 21 127 143 27 + 389 21 127 143 15 + 390 21 128 144 28 + 391 21 128 144 16 + 392 22 28 144 16 + 393 21 129 145 17 + 394 21 129 145 38 + 395 22 38 145 17 + 396 22 37 146 18 + 397 21 130 146 18 + 398 21 130 146 37 + 399 21 131 147 19 + 400 21 131 147 39 + 401 22 39 147 19 + 402 21 132 148 20 + 403 21 132 148 40 + 404 22 40 148 20 + 405 22 33 149 22 + 406 21 133 149 33 + 407 21 133 149 22 + 408 22 34 150 21 + 409 21 134 150 34 + 410 21 134 150 21 + 411 22 35 151 23 + 412 21 135 151 35 + 413 21 135 151 23 + 414 22 36 152 24 + 415 21 136 152 36 + 416 21 136 152 24 + 417 23 82 1 41 + 418 23 87 1 41 + 419 24 87 1 82 + 420 23 81 2 42 + 421 24 88 2 81 + 422 23 88 2 42 + 423 23 85 3 43 + 424 24 85 3 83 + 425 23 83 3 43 + 426 23 84 4 44 + 427 24 86 4 84 + 428 23 86 4 44 + 429 23 83 5 45 + 430 24 86 5 83 + 431 23 86 5 45 + 432 23 84 6 46 + 433 24 85 6 84 + 434 23 85 6 46 + 435 23 81 7 47 + 436 24 87 7 81 + 437 23 87 7 47 + 438 23 82 8 48 + 439 24 88 8 82 + 440 23 88 8 48 + 441 25 138 9 85 + 442 25 137 10 86 + 443 25 139 11 87 + 444 25 140 12 88 + 445 25 141 13 81 + 446 25 142 14 82 + 447 25 143 15 83 + 448 25 144 16 84 + 449 25 145 17 87 + 450 25 146 18 88 + 451 25 147 19 85 + 452 25 148 20 86 + 453 25 150 21 83 + 454 25 149 22 84 + 455 25 151 23 81 + 456 25 152 24 82 + 457 25 142 25 87 + 458 25 141 26 88 + 459 25 143 27 85 + 460 25 144 28 86 + 461 25 137 29 83 + 462 25 138 30 84 + 463 25 139 31 81 + 464 25 140 32 82 + 465 25 149 33 85 + 466 25 150 34 86 + 467 25 151 35 87 + 468 25 152 36 88 + 469 25 146 37 81 + 470 25 145 38 82 + 471 25 147 39 83 + 472 25 148 40 84 + 473 26 37 81 2 + 474 26 37 81 7 + 475 26 13 81 2 + 476 26 13 81 7 + 477 26 23 81 2 + 478 26 23 81 7 + 479 26 31 81 2 + 480 26 31 81 7 + 481 26 38 82 1 + 482 26 38 82 8 + 483 26 14 82 1 + 484 26 14 82 8 + 485 26 24 82 1 + 486 26 24 82 8 + 487 26 32 82 1 + 488 26 32 82 8 + 489 26 39 83 3 + 490 26 39 83 5 + 491 26 15 83 3 + 492 26 15 83 5 + 493 26 21 83 3 + 494 26 21 83 5 + 495 26 29 83 3 + 496 26 29 83 5 + 497 26 40 84 4 + 498 26 40 84 6 + 499 26 16 84 4 + 500 26 16 84 6 + 501 26 22 84 4 + 502 26 22 84 6 + 503 26 30 84 4 + 504 26 30 84 6 + 505 26 33 85 3 + 506 26 33 85 6 + 507 26 9 85 3 + 508 26 9 85 6 + 509 26 19 85 3 + 510 26 19 85 6 + 511 26 27 85 3 + 512 26 27 85 6 + 513 26 34 86 4 + 514 26 34 86 5 + 515 26 10 86 4 + 516 26 10 86 5 + 517 26 20 86 4 + 518 26 20 86 5 + 519 26 28 86 4 + 520 26 28 86 5 + 521 26 35 87 1 + 522 26 35 87 7 + 523 26 11 87 1 + 524 26 11 87 7 + 525 26 17 87 1 + 526 26 17 87 7 + 527 26 25 87 1 + 528 26 25 87 7 + 529 26 36 88 2 + 530 26 36 88 8 + 531 26 12 88 2 + 532 26 12 88 8 + 533 26 18 88 2 + 534 26 18 88 8 + 535 26 26 88 2 + 536 26 26 88 8 + 537 27 122 89 49 + 538 28 122 89 93 + 539 29 93 89 49 + 540 27 121 90 50 + 541 28 121 90 94 + 542 29 94 90 50 + 543 27 123 91 51 + 544 28 123 91 95 + 545 29 95 91 51 + 546 27 124 92 52 + 547 28 124 92 96 + 548 29 96 92 52 + 549 29 89 93 53 + 550 28 125 93 89 + 551 27 125 93 53 + 552 29 90 94 54 + 553 28 126 94 90 + 554 27 126 94 54 + 555 29 91 95 55 + 556 28 127 95 91 + 557 27 127 95 55 + 558 28 128 96 92 + 559 27 128 96 56 + 560 29 92 96 56 + 561 27 129 97 57 + 562 28 129 97 101 + 563 29 101 97 57 + 564 29 102 98 58 + 565 27 130 98 58 + 566 28 130 98 102 + 567 27 131 99 59 + 568 28 131 99 103 + 569 29 103 99 59 + 570 27 132 100 60 + 571 28 132 100 104 + 572 29 104 100 60 + 573 29 97 101 61 + 574 28 134 101 97 + 575 27 134 101 61 + 576 29 98 102 62 + 577 28 133 102 98 + 578 27 133 102 62 + 579 29 99 103 63 + 580 28 135 103 99 + 581 27 135 103 63 + 582 29 100 104 64 + 583 28 136 104 100 + 584 27 136 104 64 + 585 29 109 105 65 + 586 27 126 105 65 + 587 28 126 105 109 + 588 27 125 106 66 + 589 28 125 106 110 + 590 29 110 106 66 + 591 27 127 107 67 + 592 28 127 107 111 + 593 29 111 107 67 + 594 27 128 108 68 + 595 28 128 108 112 + 596 29 112 108 68 + 597 29 105 109 69 + 598 28 121 109 105 + 599 27 121 109 69 + 600 29 106 110 70 + 601 28 122 110 106 + 602 27 122 110 70 + 603 29 107 111 71 + 604 28 123 111 107 + 605 27 123 111 71 + 606 28 124 112 108 + 607 27 124 112 72 + 608 29 108 112 72 + 609 27 133 113 73 + 610 28 133 113 117 + 611 29 117 113 73 + 612 29 118 114 74 + 613 27 134 114 74 + 614 28 134 114 118 + 615 27 135 115 75 + 616 28 135 115 119 + 617 29 119 115 75 + 618 27 136 116 76 + 619 28 136 116 120 + 620 29 120 116 76 + 621 29 113 117 77 + 622 28 130 117 113 + 623 27 130 117 77 + 624 28 129 118 114 + 625 27 129 118 78 + 626 29 114 118 78 + 627 29 115 119 79 + 628 28 131 119 115 + 629 27 131 119 79 + 630 29 116 120 80 + 631 28 132 120 116 + 632 27 132 120 80 + 633 30 137 121 90 + 634 30 137 121 109 + 635 31 109 121 90 + 636 30 138 122 89 + 637 30 138 122 110 + 638 31 110 122 89 + 639 30 139 123 91 + 640 30 139 123 111 + 641 31 111 123 91 + 642 30 140 124 92 + 643 30 140 124 112 + 644 31 112 124 92 + 645 31 106 125 93 + 646 30 141 125 106 + 647 30 141 125 93 + 648 31 105 126 94 + 649 30 142 126 105 + 650 30 142 126 94 + 651 31 107 127 95 + 652 30 143 127 107 + 653 30 143 127 95 + 654 31 108 128 96 + 655 30 144 128 108 + 656 30 144 128 96 + 657 30 145 129 97 + 658 30 145 129 118 + 659 31 118 129 97 + 660 31 117 130 98 + 661 30 146 130 98 + 662 30 146 130 117 + 663 30 147 131 99 + 664 30 147 131 119 + 665 31 119 131 99 + 666 30 148 132 100 + 667 30 148 132 120 + 668 31 120 132 100 + 669 31 113 133 102 + 670 30 149 133 113 + 671 30 149 133 102 + 672 31 114 134 101 + 673 30 150 134 114 + 674 30 150 134 101 + 675 31 115 135 103 + 676 30 151 135 115 + 677 30 151 135 103 + 678 31 116 136 104 + 679 30 152 136 116 + 680 30 152 136 104 + 681 32 121 137 10 + 682 32 121 137 29 + 683 33 29 137 10 + 684 32 122 138 9 + 685 32 122 138 30 + 686 33 30 138 9 + 687 32 123 139 11 + 688 32 123 139 31 + 689 33 31 139 11 + 690 32 124 140 12 + 691 32 124 140 32 + 692 33 32 140 12 + 693 33 26 141 13 + 694 32 125 141 26 + 695 32 125 141 13 + 696 33 25 142 14 + 697 32 126 142 25 + 698 32 126 142 14 + 699 33 27 143 15 + 700 32 127 143 27 + 701 32 127 143 15 + 702 32 128 144 28 + 703 32 128 144 16 + 704 33 28 144 16 + 705 32 129 145 17 + 706 32 129 145 38 + 707 33 38 145 17 + 708 33 37 146 18 + 709 32 130 146 18 + 710 32 130 146 37 + 711 32 131 147 19 + 712 32 131 147 39 + 713 33 39 147 19 + 714 32 132 148 20 + 715 32 132 148 40 + 716 33 40 148 20 + 717 33 33 149 22 + 718 32 133 149 33 + 719 32 133 149 22 + 720 33 34 150 21 + 721 32 134 150 34 + 722 32 134 150 21 + 723 33 35 151 23 + 724 32 135 151 35 + 725 32 135 151 23 + 726 33 36 152 24 + 727 32 136 152 36 + 728 32 136 152 24 + 729 34 7 81 2 + 730 34 8 82 1 + 731 34 5 83 3 + 732 34 6 84 4 + 733 34 6 85 3 + 734 34 5 86 4 + 735 34 7 87 1 + 736 34 8 88 2 + +Dihedrals + + 1 4 125 93 89 49 + 2 7 125 93 89 122 + 3 8 53 93 89 49 + 4 4 53 93 89 122 + 5 4 54 94 90 121 + 6 8 54 94 90 50 + 7 7 126 94 90 121 + 8 4 126 94 90 50 + 9 4 127 95 91 51 + 10 7 127 95 91 123 + 11 8 55 95 91 51 + 12 4 55 95 91 123 + 13 7 128 96 92 124 + 14 4 128 96 92 52 + 15 4 56 96 92 124 + 16 8 56 96 92 52 + 17 8 61 101 97 57 + 18 4 61 101 97 129 + 19 4 134 101 97 57 + 20 7 134 101 97 129 + 21 4 133 102 98 58 + 22 7 133 102 98 130 + 23 8 62 102 98 58 + 24 4 62 102 98 130 + 25 4 135 103 99 59 + 26 7 135 103 99 131 + 27 8 63 103 99 59 + 28 4 63 103 99 131 + 29 4 136 104 100 60 + 30 7 136 104 100 132 + 31 8 64 104 100 60 + 32 4 64 104 100 132 + 33 4 121 109 105 65 + 34 7 121 109 105 126 + 35 8 69 109 105 65 + 36 4 69 109 105 126 + 37 8 70 110 106 66 + 38 4 70 110 106 125 + 39 4 122 110 106 66 + 40 7 122 110 106 125 + 41 4 123 111 107 67 + 42 7 123 111 107 127 + 43 8 71 111 107 67 + 44 4 71 111 107 127 + 45 7 124 112 108 128 + 46 4 124 112 108 68 + 47 4 72 112 108 128 + 48 8 72 112 108 68 + 49 4 130 117 113 73 + 50 7 130 117 113 133 + 51 8 77 117 113 73 + 52 4 77 117 113 133 + 53 4 129 118 114 74 + 54 7 129 118 114 134 + 55 8 78 118 114 74 + 56 4 78 118 114 134 + 57 4 131 119 115 75 + 58 7 131 119 115 135 + 59 8 79 119 115 75 + 60 4 79 119 115 135 + 61 4 132 120 116 76 + 62 7 132 120 116 136 + 63 8 80 120 116 76 + 64 4 80 120 116 136 + 65 2 137 121 90 50 + 66 3 137 121 90 94 + 67 5 109 121 90 50 + 68 1 109 121 90 94 + 69 3 137 121 109 105 + 70 2 137 121 109 69 + 71 1 90 121 109 105 + 72 5 90 121 109 69 + 73 2 138 122 89 49 + 74 3 138 122 89 93 + 75 5 110 122 89 49 + 76 1 110 122 89 93 + 77 1 89 122 110 106 + 78 5 89 122 110 70 + 79 3 138 122 110 106 + 80 2 138 122 110 70 + 81 2 139 123 91 51 + 82 3 139 123 91 95 + 83 5 111 123 91 51 + 84 1 111 123 91 95 + 85 1 91 123 111 107 + 86 5 91 123 111 71 + 87 3 139 123 111 107 + 88 2 139 123 111 71 + 89 2 140 124 92 52 + 90 3 140 124 92 96 + 91 5 112 124 92 52 + 92 1 112 124 92 96 + 93 1 92 124 112 108 + 94 5 92 124 112 72 + 95 3 140 124 112 108 + 96 2 140 124 112 72 + 97 1 106 125 93 89 + 98 5 106 125 93 53 + 99 3 141 125 93 89 + 100 2 141 125 93 53 + 101 2 141 125 106 66 + 102 3 141 125 106 110 + 103 5 93 125 106 66 + 104 1 93 125 106 110 + 105 1 105 126 94 90 + 106 5 105 126 94 54 + 107 3 142 126 94 90 + 108 2 142 126 94 54 + 109 5 94 126 105 65 + 110 1 94 126 105 109 + 111 2 142 126 105 65 + 112 3 142 126 105 109 + 113 1 107 127 95 91 + 114 5 107 127 95 55 + 115 3 143 127 95 91 + 116 2 143 127 95 55 + 117 2 143 127 107 67 + 118 3 143 127 107 111 + 119 5 95 127 107 67 + 120 1 95 127 107 111 + 121 1 108 128 96 92 + 122 5 108 128 96 56 + 123 3 144 128 96 92 + 124 2 144 128 96 56 + 125 2 144 128 108 68 + 126 3 144 128 108 112 + 127 5 96 128 108 68 + 128 1 96 128 108 112 + 129 2 145 129 97 57 + 130 3 145 129 97 101 + 131 5 118 129 97 57 + 132 1 118 129 97 101 + 133 1 97 129 118 114 + 134 5 97 129 118 78 + 135 3 145 129 118 114 + 136 2 145 129 118 78 + 137 5 117 130 98 58 + 138 1 117 130 98 102 + 139 2 146 130 98 58 + 140 3 146 130 98 102 + 141 1 98 130 117 113 + 142 5 98 130 117 77 + 143 3 146 130 117 113 + 144 2 146 130 117 77 + 145 2 147 131 99 59 + 146 3 147 131 99 103 + 147 5 119 131 99 59 + 148 1 119 131 99 103 + 149 1 99 131 119 115 + 150 5 99 131 119 79 + 151 3 147 131 119 115 + 152 2 147 131 119 79 + 153 2 148 132 100 60 + 154 3 148 132 100 104 + 155 5 120 132 100 60 + 156 1 120 132 100 104 + 157 1 100 132 120 116 + 158 5 100 132 120 80 + 159 3 148 132 120 116 + 160 2 148 132 120 80 + 161 1 113 133 102 98 + 162 5 113 133 102 62 + 163 3 149 133 102 98 + 164 2 149 133 102 62 + 165 2 149 133 113 73 + 166 3 149 133 113 117 + 167 5 102 133 113 73 + 168 1 102 133 113 117 + 169 1 114 134 101 97 + 170 5 114 134 101 61 + 171 3 150 134 101 97 + 172 2 150 134 101 61 + 173 5 101 134 114 74 + 174 1 101 134 114 118 + 175 2 150 134 114 74 + 176 3 150 134 114 118 + 177 1 115 135 103 99 + 178 5 115 135 103 63 + 179 3 151 135 103 99 + 180 2 151 135 103 63 + 181 2 151 135 115 75 + 182 3 151 135 115 119 + 183 5 103 135 115 75 + 184 1 103 135 115 119 + 185 1 116 136 104 100 + 186 5 116 136 104 64 + 187 3 152 136 104 100 + 188 2 152 136 104 64 + 189 2 152 136 116 76 + 190 3 152 136 116 120 + 191 5 104 136 116 76 + 192 1 104 136 116 120 + 193 9 121 137 10 86 + 194 9 121 137 29 83 + 195 6 10 137 121 90 + 196 6 10 137 121 109 + 197 6 29 137 121 90 + 198 6 29 137 121 109 + 199 9 122 138 9 85 + 200 9 122 138 30 84 + 201 6 9 138 122 89 + 202 6 9 138 122 110 + 203 6 30 138 122 89 + 204 6 30 138 122 110 + 205 9 123 139 11 87 + 206 9 123 139 31 81 + 207 6 11 139 123 91 + 208 6 11 139 123 111 + 209 6 31 139 123 91 + 210 6 31 139 123 111 + 211 9 124 140 12 88 + 212 9 124 140 32 82 + 213 6 12 140 124 92 + 214 6 12 140 124 112 + 215 6 32 140 124 92 + 216 6 32 140 124 112 + 217 9 125 141 13 81 + 218 9 125 141 26 88 + 219 6 26 141 125 106 + 220 6 26 141 125 93 + 221 6 13 141 125 106 + 222 6 13 141 125 93 + 223 9 126 142 14 82 + 224 9 126 142 25 87 + 225 6 25 142 126 105 + 226 6 25 142 126 94 + 227 6 14 142 126 105 + 228 6 14 142 126 94 + 229 9 127 143 15 83 + 230 9 127 143 27 85 + 231 6 27 143 127 107 + 232 6 27 143 127 95 + 233 6 15 143 127 107 + 234 6 15 143 127 95 + 235 9 128 144 16 84 + 236 9 128 144 28 86 + 237 6 28 144 128 108 + 238 6 28 144 128 96 + 239 6 16 144 128 108 + 240 6 16 144 128 96 + 241 9 129 145 17 87 + 242 9 129 145 38 82 + 243 6 17 145 129 97 + 244 6 17 145 129 118 + 245 6 38 145 129 97 + 246 6 38 145 129 118 + 247 9 130 146 18 88 + 248 9 130 146 37 81 + 249 6 18 146 130 98 + 250 6 18 146 130 117 + 251 6 37 146 130 98 + 252 6 37 146 130 117 + 253 9 131 147 19 85 + 254 9 131 147 39 83 + 255 6 19 147 131 99 + 256 6 19 147 131 119 + 257 6 39 147 131 99 + 258 6 39 147 131 119 + 259 9 132 148 20 86 + 260 9 132 148 40 84 + 261 6 20 148 132 100 + 262 6 20 148 132 120 + 263 6 40 148 132 100 + 264 6 40 148 132 120 + 265 9 133 149 22 84 + 266 9 133 149 33 85 + 267 6 33 149 133 113 + 268 6 33 149 133 102 + 269 6 22 149 133 113 + 270 6 22 149 133 102 + 271 9 134 150 21 83 + 272 9 134 150 34 86 + 273 6 34 150 134 114 + 274 6 34 150 134 101 + 275 6 21 150 134 114 + 276 6 21 150 134 101 + 277 9 135 151 23 81 + 278 9 135 151 35 87 + 279 6 35 151 135 115 + 280 6 35 151 135 103 + 281 6 23 151 135 115 + 282 6 23 151 135 103 + 283 9 136 152 24 82 + 284 9 136 152 36 88 + 285 6 36 152 136 116 + 286 6 36 152 136 104 + 287 6 24 152 136 116 + 288 6 24 152 136 104 + +Impropers + + 1 3 89 49 122 93 + 2 3 90 121 50 94 + 3 3 91 51 123 95 + 4 3 92 124 52 96 + 5 3 93 89 125 53 + 6 3 94 90 54 126 + 7 3 95 91 127 55 + 8 3 96 128 92 56 + 9 3 97 57 129 101 + 10 3 98 58 102 130 + 11 3 99 59 131 103 + 12 3 100 60 132 104 + 13 3 101 97 61 134 + 14 3 102 98 133 62 + 15 3 103 99 135 63 + 16 3 104 100 136 64 + 17 3 105 65 109 126 + 18 3 106 66 125 110 + 19 3 107 67 127 111 + 20 3 108 128 68 112 + 21 3 109 105 121 69 + 22 3 110 106 70 122 + 23 3 111 107 123 71 + 24 3 112 124 108 72 + 25 3 113 73 133 117 + 26 3 114 74 118 134 + 27 3 115 75 135 119 + 28 3 116 76 136 120 + 29 3 117 113 130 77 + 30 3 118 129 114 78 + 31 3 119 115 131 79 + 32 3 120 116 132 80 + 33 1 121 137 90 109 + 34 1 122 89 138 110 + 35 1 123 91 139 111 + 36 1 124 92 140 112 + 37 1 125 106 141 93 + 38 1 126 105 94 142 + 39 1 127 107 143 95 + 40 1 128 108 144 96 + 41 1 129 97 145 118 + 42 1 130 98 117 146 + 43 1 131 99 147 119 + 44 1 132 100 148 120 + 45 1 133 113 149 102 + 46 1 134 114 101 150 + 47 1 135 115 151 103 + 48 1 136 116 152 104 + 49 2 137 121 10 29 + 50 2 138 9 122 30 + 51 2 139 11 123 31 + 52 2 140 124 12 32 + 53 2 141 26 13 125 + 54 2 142 25 14 126 + 55 2 143 27 127 15 + 56 2 144 128 28 16 + 57 2 145 17 129 38 + 58 2 146 18 37 130 + 59 2 147 19 131 39 + 60 2 148 20 132 40 + 61 2 149 33 133 22 + 62 2 150 34 21 134 + 63 2 151 35 135 23 + 64 2 152 36 136 24 diff --git a/examples/USER/yaff/mil53al/lammps.in b/examples/USER/yaff/mil53al/lammps.in new file mode 100644 index 0000000000000000000000000000000000000000..a2b6329bbdfe433d858a1e29591e1f8f4d45447e --- /dev/null +++ b/examples/USER/yaff/mil53al/lammps.in @@ -0,0 +1,42 @@ +######################################### +#General settings +######################################### +units real +atom_style full +boundary p p p +dielectric 1 + +######################################### +#Force field and system specification +######################################### +special_bonds lj 0.000000 0.000000 1.000000 coul 1.000000 1.000000 1.000000 +pair_style mm3/switch3/coulgauss/long 12.0000 4.0000 +pair_modify table 16 # Accuracy of the table used for real space electrostatics +pair_modify mix arithmetic +pair_modify tail no +bond_style harmonic +angle_style hybrid cosine/periodic cross harmonic cosine/squared +dihedral_style fourier +improper_style distharm +box tilt large + +read_data lammps.data # Data file location +kspace_style pppm 0.0000001 # Ewald accuracy +neighbor 2.0 multi +neigh_modify every 2 delay 4 check yes + +######################################### +#Output settings +######################################### +thermo 100 # Provide output every n steps +thermo_style custom step time etotal ke temp pe emol evdwl ecoul elong etail vol press +thermo_modify line multi format float %20.12f + +######################################### +#Sampling options +######################################### +timestep 0.5 # in femtosecond +velocity all create 0.0 5 # initial temperature in Kelvin and random seed +fix 1 all npt temp 300.0 300.0 100.0 tri 2000.0 2000.0 1000.0 tchain 3 mtk yes nreset 1000 +fix_modify 1 energy yes # Add thermo/barostat contributions to energy +run 10000 diff --git a/examples/USER/yaff/mof5/lammps.data b/examples/USER/yaff/mof5/lammps.data new file mode 100644 index 0000000000000000000000000000000000000000..acc6f7d3d22392d1a958101adb3f65dd2811888f --- /dev/null +++ b/examples/USER/yaff/mof5/lammps.data @@ -0,0 +1,4315 @@ +Generated by yaff2lammps + + 424 atoms + 512 bonds + 1824 angles + 1248 dihedrals + 192 impropers + + 7 atom types + 7 bond types + 29 angle types + 11 dihedral types + 3 improper types + + 0.0000000000000000000000000000000000 26.4070248643267468935391661943867803 xlo xhi + 0.0000000000000000000000000000000000 26.4070252891212220447414438240230083 ylo yhi + 0.0000000000000000000000000000000000 26.4070257154843517355402582325041294 zlo zhi + -0.0000000007111492372846892652846758 -0.0000000000659408828932501509572980 -0.0000000000464737531820980317620204 xy xz yz + +Masses + + 1 65.40900000 # Zn + 2 15.99940000 # O_CE + 3 15.99940000 # O_CA + 4 12.01070000 # C_CA + 5 12.01070000 # C_PH + 6 12.01070000 # C_PC + 7 1.00794000 # H_PH + +Bond Coeffs + + 1 682.36094515 1.27102391 + 2 499.48089314 1.38650552 + 3 328.64606795 1.49449724 + 4 465.15110963 1.39880394 + 5 406.68075027 1.08330871 + 6 107.02127303 2.03268653 + 7 113.67644184 1.98848069 + +Angle Coeffs + + 1 cross 193.48062339 101.27328163 101.27328163 1.27218805 1.27218805 123.91120600 + 2 cross 90.86010618 104.60333096 43.56504880 1.27186911 1.49086906 118.21448172 + 3 cross 90.86010618 43.56504880 104.60333096 1.49086906 1.27186911 118.21448172 + 4 cross 130.81104940 12.67739461 16.17645862 1.39837427 1.38759779 120.07946149 + 5 cross 130.81104940 16.17645862 12.67739461 1.38759779 1.39837427 120.07946149 + 6 cross 11.41676921 30.63883886 25.17734414 1.08331485 1.39837427 119.52155527 + 7 cross 11.41676921 25.17734414 30.63883886 1.39837427 1.08331485 119.52155527 + 8 cross 12.44667401 28.35704887 28.27577085 1.38759779 1.08331485 120.41324047 + 9 cross 12.44667401 28.27577085 28.35704887 1.08331485 1.38759779 120.41324047 + 10 cross 75.95522848 37.17414513 10.05189907 1.49086906 1.39837427 119.94754556 + 11 cross 75.95522848 10.05189907 37.17414513 1.39837427 1.49086906 119.94754556 + 12 cross 144.65705708 -7.34407121 -7.34407121 1.39837427 1.39837427 119.90241395 + 13 cross 20.17000841 2.28355442 -7.92322284 1.98727825 2.03828701 109.42277782 + 14 cross 20.17000841 -7.92322284 2.28355442 2.03828701 1.98727825 109.42277782 + 15 cross 22.09014578 27.25520258 27.25520258 1.98727825 1.98727825 108.41474547 + 16 cross 35.09855972 13.51120456 13.51120456 2.03828701 2.03828701 110.23699695 + 17 cross 60.09401332 6.52883112 6.33031133 1.27250698 1.98727825 133.24307044 + 18 cross 60.09401332 6.33031133 6.52883112 1.98727825 1.27250698 133.24307044 + 19 mm3 89.55892156 124.04066786 + 20 mm3 66.99975548 120.08429731 + 21 mm3 36.80738383 120.34964823 + 22 mm3 78.98317285 118.11635047 + 23 mm3 45.56202376 120.27481067 + 24 mm3 38.05295940 119.66571944 + 25 mm3 69.51816469 119.99726194 + 26 mm3 10.37923783 135.02173615 + 27 mm3 7.08946285 108.92035063 + 28 mm3 9.10447143 107.51166462 + 29 mm3 29.71892770 109.45766072 + +Dihedral Coeffs + + 1 1 3.64767899 2 -180.00000000 + 2 1 2.35495004 2 -180.00000000 + 3 1 0.77392291 2 -180.00000000 + 4 1 4.23729765 2 -180.00000000 + 5 1 3.96491674 2 -180.00000000 + 6 1 3.27183804 2 -180.00000000 + 7 1 2.21748040 2 -180.00000000 + 8 1 5.15273943 2 -180.00000000 + 9 1 0.07197799 2 -180.00000000 + 10 1 1.18073306 2 -180.00000000 + 11 1 0.13801067 3 -180.00000000 + +Improper Coeffs + + 1 27.54315214 0.30000000 + 2 196.72513766 0.20000000 + 3 21.31242806 0.10000000 + +Pair Coeffs + + 1 0.276000000000 2.290000000000 2.073000000000 # Zn + 2 0.059000000000 1.820000000000 1.132500000000 # O_CE + 3 0.059000000000 1.820000000000 1.132500000000 # O_CA + 4 0.056000000000 1.940000000000 1.164600000000 # C_CA + 5 0.056000000000 1.960000000000 1.164600000000 # C_PH + 6 0.056000000000 1.960000000000 1.164600000000 # C_PC + 7 0.020000000000 1.620000000000 0.730900000000 # H_PH + +Atoms + + 1 1 1 1.1385908011000001049950469678151421 7.7681655356393379818769062694627792 5.4353470464458997213341717724688351 5.4353481400207055429518732125870883 + 2 1 1 1.1385908011000001049950469678151421 18.6388604818900276427484641317278147 20.9716793824397242929080675821751356 20.9716786980636094028795923804864287 + 3 1 1 1.1385908011000001049950469678151421 18.6388604828091395404499053256586194 20.9716793882223804246223153313621879 5.4353481469762670030831941403448582 + 4 1 1 1.1385908011000001049950469678151421 7.7681655364778690042726339015644044 5.4353470521724522868112217111047357 20.9716787050184301222088834038004279 + 5 1 1 1.1385908011000001049950469678151421 18.6388604820358487756948306923732162 5.4353470549395410671422723680734634 20.9716787022728006206762074725702405 + 6 1 1 1.1385908011000001049950469678151421 7.7681655348670091143503668718039989 20.9716793909088075054114597151055932 5.4353481442725533057114262192044407 + 7 1 1 1.1385908011000001049950469678151421 7.7681655357115895199626720568630844 20.9716793851271745552367065101861954 20.9716787007712568424722121562808752 + 8 1 1 1.1385908011000001049950469678151421 18.6388604829732216217053064610809088 5.4353470492259390312028699554502964 5.4353481427881851217875919246580452 + 9 1 1 1.1385908011000001049950469678151421 5.4353480335349191321370199148077518 7.7681659778904474933369783684611320 5.4353473910968492788242656388320029 + 10 1 1 1.1385908011000001049950469678151421 20.9716779882094357390087679959833622 18.6388604499221948174181306967511773 20.9716794503401686711185902822762728 + 11 1 1 1.1385908011000001049950469678151421 5.4353480418414452657316360273398459 18.6388604476287227385000733193010092 20.9716794526507896989642176777124405 + 12 1 1 1.1385908011000001049950469678151421 20.9716779971001834326216339832171798 7.7681659755144787382619142590556294 5.4353473934498337527543299074750394 + 13 1 1 1.1385908011000001049950469678151421 20.9716779939941133648062532301992178 18.6388604508393349590278376126661897 5.4353473947126449417055482626892626 + 14 1 1 1.1385908011000001049950469678151421 5.4353480392393134223993911291472614 7.7681659787512575832124639418907464 20.9716794539569519884025794453918934 + 15 1 1 1.1385908011000001049950469678151421 20.9716779912964526033647416625171900 7.7681659763617938452284761297050864 20.9716794515814761723504489054903388 + 16 1 1 1.1385908011000001049950469678151421 5.4353480361288601940827902581077069 18.6388604485427613610681873979046941 5.4353473923970669900995744683314115 + 17 1 1 1.1385908011000001049950469678151421 5.4353473615433571808353008236736059 5.4353484119468289392784754454623908 7.7681665390863825493283911782782525 + 18 1 1 1.1385908011000001049950469678151421 20.9716786635264433868997002718970180 20.9716780214450366770506661850959063 18.6388602999156418604798091109842062 + 19 1 1 1.1385908011000001049950469678151421 20.9716786678593969384110096143558621 5.4353484156213465183782318490557373 18.6388602987394449428393272683024406 + 20 1 1 1.1385908011000001049950469678151421 5.4353473649551853341677087882999331 20.9716780252386136851328046759590507 7.7681665379556230632829283422324806 + 21 1 1 1.1385908011000001049950469678151421 5.4353473663194220577565829444210976 20.9716780238284776771706674480810761 18.6388602975496908698005427140742540 + 22 1 1 1.1385908011000001049950469678151421 20.9716786692716929962898575467988849 5.4353484142481827134929517342243344 7.7681665367625623019876002217642963 + 23 1 1 1.1385908011000001049950469678151421 20.9716786649501152339780674083158374 20.9716780228583630218963662628084421 7.7681665355948394946494772739242762 + 24 1 1 1.1385908011000001049950469678151421 5.4353473629214468232362378330435604 5.4353484133301899206003326980862767 18.6388602964345366785892110783606768 + 25 1 1 1.1385908011000001049950469678151421 7.7681661448906043077045069367159158 18.6388603674339208282617619261145592 18.6388609743165929444330686237663031 + 26 1 1 1.1385908011000001049950469678151421 18.6388598649385599514971545431762934 7.7681660573387638635267649078741670 7.7681658552096362058136946870945394 + 27 1 1 1.1385908011000001049950469678151421 18.6388598693962634911258646752685308 7.7681660528421563327583498903550208 18.6388609736337329536581819411367178 + 28 1 1 1.1385908011000001049950469678151421 7.7681661493951921215739275794476271 18.6388603629757554358548077289015055 7.7681658545225156231595065037254244 + 29 1 1 1.1385908011000001049950469678151421 18.6388598684865343102501356042921543 18.6388603657511033873106498504057527 7.7681658517638823013840010389685631 + 30 1 1 1.1385908011000001049950469678151421 7.7681661489359852268421491316985339 7.7681660555329976602934038965031505 18.6388609709207209164105734089389443 + 31 1 1 1.1385908011000001049950469678151421 7.7681661534287194115222519030794501 7.7681660600201682953525050834286958 7.7681658579038215250989196647424251 + 32 1 1 1.1385908011000001049950469678151421 18.6388598729334624692910438170656562 18.6388603702083806012979039223864675 18.6388609770715056868084502639248967 + 33 1 2 -1.1996262903999999060999925859505311 6.6017567794254068402892698941286653 6.6017568805824877742338685493450612 6.6017569851852506701561651425436139 + 34 1 2 -1.1996262903999999060999925859505311 19.8052692450136689217288221698254347 19.8052695509050984412624529795721173 19.8052698542058642772190069081261754 + 35 1 2 -1.1996262903999999060999925859505311 19.8052692451266771911377873038873076 19.8052695509947689345153776230290532 6.6017569850626030003581945493351668 + 36 1 2 -1.1996262903999999060999925859505311 6.6017567794610032549940115131903440 6.6017568806120694446804009203333408 19.8052698540833276297234988305717707 + 37 1 2 -1.1996262903999999060999925859505311 19.8052692455747880728722520871087909 6.6017568806341531129078248341102153 19.8052698541859548697630089009180665 + 38 1 2 -1.1996262903999999060999925859505311 6.6017567792593823128299845848232508 19.8052695509999701073411415563896298 6.6017569849619262001283459539990872 + 39 1 2 -1.1996262903999999060999925859505311 6.6017567793064513281819927215110511 19.8052695509013538810449972515925765 19.8052698543089888971735490486025810 + 40 1 2 -1.1996262903999999060999925859505311 19.8052692456725587533128418726846576 6.6017568805577271362494684581179172 6.6017569850833739408813016780186445 + 41 1 3 -0.6614125480999999417974777315976098 7.3942181733283014466451277257874608 5.8092937865263580832220213778782636 3.5019658020624895300443313317373395 + 42 1 3 -0.6614125480999999417974777315976098 19.0128078425525721684152813395485282 20.5977326425952682598108367528766394 22.9050610423764169354399200528860092 + 43 1 3 -0.6614125480999999417974777315976098 19.0128078411376932876919454429298639 20.5977326418579700373356899945065379 3.5019658064874317204839826445095241 + 44 1 3 -0.6614125480999999417974777315976098 7.3942181718381911892379321216139942 5.8092937857008299928907035791780800 22.9050610467861481822637870209291577 + 45 1 3 -0.6614125480999999417974777315976098 19.0128078564215385881652764510363340 5.8092937813638991784159770759288222 22.9050610450410161433865141589194536 + 46 1 3 -0.6614125480999999417974777315976098 7.3942181862512610379667421511840075 20.5977326373507381163108220789581537 3.5019658046746764412660013476852328 + 47 1 3 -0.6614125480999999417974777315976098 7.3942181846366104025491949869319797 20.5977326379863434624439832987263799 22.9050610442565165669748239452019334 + 48 1 3 -0.6614125480999999417974777315976098 19.0128078545243539565490209497511387 5.8092937816891616620296190376393497 3.5019658041565966399844000989105552 + 49 1 3 -0.6614125480999999417974777315976098 3.5019657909495807146527113218326122 7.3942187212764647341600721119903028 5.8092944677925419938446793821640313 + 50 1 3 -0.6614125480999999417974777315976098 22.9050602369784179757061792770400643 19.0128076948782052113529061898589134 20.5977323618679157846145244548097253 + 51 1 3 -0.6614125480999999417974777315976098 3.5019657972852078486880600394215435 19.0128076933941407844486093381419778 20.5977323633455640106149076018482447 + 52 1 3 -0.6614125480999999417974777315976098 22.9050602427862557419757649768143892 7.3942187215476389283708158473018557 5.8092944675320916658733949589077383 + 53 1 3 -0.6614125480999999417974777315976098 22.9050602407389938264259399147704244 19.0128077137566151577630080282688141 5.8092944665556016659024862747173756 + 54 1 3 -0.6614125480999999417974777315976098 3.5019657945506681429037598718423396 7.3942187399778358525281873880885541 20.5977323605050735011445794953033328 + 55 1 3 -0.6614125480999999417974777315976098 22.9050602387797610504094336647540331 7.3942187407221728889794576389249414 20.5977323612425990972951694857329130 + 56 1 3 -0.6614125480999999417974777315976098 3.5019657935145551697075916308676824 19.0128077123963770134196238359436393 5.8092944652027505014757480239495635 + 57 1 3 -0.6614125480999999417974777315976098 5.8092942248463375065625768911559135 3.5019659445057245150678681966383010 7.3942200042889165700898956856690347 + 58 1 3 -0.6614125480999999417974777315976098 20.5977317920127909189886850072070956 22.9050604931258803276250546332448721 19.0128068387566280250666750362142920 + 59 1 3 -0.6614125480999999417974777315976098 20.5977317911533504002363770268857479 3.5019659473096780288869922515004873 19.0128068375803138678747927770018578 + 60 1 3 -0.6614125480999999417974777315976098 5.8092942247353196449921597377397120 22.9050604972263194269999075913801789 7.3942200013357615162590263935271651 + 61 1 3 -0.6614125480999999417974777315976098 5.8092942250240371393488203466404229 22.9050604954516501265970873646438122 19.0128068461052670556910015875473619 + 62 1 3 -0.6614125480999999417974777315976098 20.5977317913448167985279724234715104 3.5019659454737896986387113429373130 7.3942200097043766504611994605511427 + 63 1 3 -0.6614125480999999417974777315976098 20.5977317923231417751139815663918853 22.9050604949299945189977734116837382 7.3942200086482570142720760486554354 + 64 1 3 -0.6614125480999999417974777315976098 5.8092942249925405562294145056512207 3.5019659463469063886975618515862152 19.0128068430089136597871402045711875 + 65 1 3 -0.6614125480999999417974777315976098 5.8092960785327898420860037731472403 7.3942182075750313430262394831515849 22.9050614002890959852720698108896613 + 66 1 3 -0.6614125480999999417974777315976098 20.5977299401312841098388162208721042 19.0128082239953606347171444213017821 3.5019654517842653262960084248334169 + 67 1 3 -0.6614125480999999417974777315976098 20.5977299405712770408172218594700098 19.0128082257082873240960907423868775 22.9050613972744407931259047472849488 + 68 1 3 -0.6614125480999999417974777315976098 5.8092960790514895919045557093340904 7.3942182093726591673998882470186800 3.5019654487820419674903860141057521 + 69 1 3 -0.6614125480999999417974777315976098 5.8092960762463938806376972934231162 19.0128082304078702691185753792524338 3.5019654501479484665082964056637138 + 70 1 3 -0.6614125480999999417974777315976098 20.5977299386054824026359710842370987 7.3942182142183732196372147882357240 22.9050613984380468934887176146730781 + 71 1 3 -0.6614125480999999417974777315976098 20.5977299376820504051011084811761975 7.3942182155180562475038641423452646 3.5019654502855197542032783530885354 + 72 1 3 -0.6614125480999999417974777315976098 5.8092960756012583800611537299118936 19.0128082320136755356543289963155985 22.9050613988376525753665191587060690 + 73 1 3 -0.6614125480999999417974777315976098 7.3942172056483563835627137450501323 3.5019653161967823074007810646435246 20.5977303905757622715100296773016453 + 74 1 3 -0.6614125480999999417974777315976098 19.0128088409146194237564486684277654 22.9050611265415646755627676611766219 5.8092964336224230947891555842943490 + 75 1 3 -0.6614125480999999417974777315976098 19.0128088404674606692879024194553494 3.5019653150334657532027904380811378 5.8092964323469908904939984495285898 + 76 1 3 -0.6614125480999999417974777315976098 7.3942172062134545740264002233743668 22.9050611238859431750825024209916592 20.5977303913429352633102098479866982 + 77 1 3 -0.6614125480999999417974777315976098 19.0128088218691964073059352813288569 22.9050611226776190676446276484057307 20.5977303949553345319145591929554939 + 78 1 3 -0.6614125480999999417974777315976098 7.3942171867826607112306191993411630 3.5019653124559817491956437152111903 5.8092964378953917403691775689367205 + 79 1 3 -0.6614125480999999417974777315976098 7.3942171872283024569583176344167441 22.9050611277551752209546975791454315 5.8092964372482214230331010185182095 + 80 1 3 -0.6614125480999999417974777315976098 19.0128088215761614776511123636737466 3.5019653187266461813464957231190056 20.5977303960754589695625327294692397 + 81 1 3 -0.6614125480999999417974777315976098 3.5019654779337230365854338742792606 5.8092967237013635184439408476464450 19.0128078412212566661310120252892375 + 82 1 3 -0.6614125480999999417974777315976098 22.9050605550011709965474437922239304 20.5977296963806075780212268000468612 7.3942190175944446650646568741649389 + 83 1 3 -0.6614125480999999417974777315976098 3.5019654778984468102009941503638402 20.5977296959421032340742385713383555 7.3942190171633228601422160863876343 + 84 1 3 -0.6614125480999999417974777315976098 22.9050605571640275570644007530063391 5.8092967253534926186375741963274777 19.0128078428666391630486032227054238 + 85 1 3 -0.6614125480999999417974777315976098 22.9050605588242035537405172362923622 5.8092967248778739630665768345352262 7.3942190047566755950469996605534106 + 86 1 3 -0.6614125480999999417974777315976098 3.5019654796467700741402495623333380 20.5977296956396678240253095282241702 19.0128078302438510149841022212058306 + 87 1 3 -0.6614125480999999417974777315976098 22.9050605531062210218351538060232997 20.5977296962075158148763875942677259 19.0128078296824511994600470643490553 + 88 1 3 -0.6614125480999999417974777315976098 3.5019654760072134180859393381979316 5.8092967236924213381143999868072569 7.3942190059313750438718670920934528 + 89 1 3 -0.6614125480999999417974777315976098 7.3942189816897174736709530407097191 19.0128074720672763930906512541696429 16.7054786480276398208388854982331395 + 90 1 3 -0.6614125480999999417974777315976098 19.0128070348148447976655006641522050 7.3942189561113034201866867078933865 9.7015481798496168153178587090224028 + 91 1 3 -0.6614125480999999417974777315976098 19.0128070398263808726824208861216903 7.3942189510663363094522537721786648 16.7054786479772090501683123875409365 + 92 1 3 -0.6614125480999999417974777315976098 7.3942189868229606375393814232666045 19.0128074669634301585574576165527105 9.7015481797389462315095443045720458 + 93 1 3 -0.6614125480999999417974777315976098 19.0128070404677238514068449148908257 19.0128074623046927627001423388719559 9.7015481777709826616273858235217631 + 94 1 3 -0.6614125480999999417974777315976098 7.3942189879737281188454289804212749 7.3942189463278769068210749537684023 16.7054786460043480644799274159595370 + 95 1 3 -0.6614125480999999417974777315976098 7.3942189934460786915337848768103868 7.3942189517942757959190203109756112 9.7015481815281976452070011873729527 + 96 1 3 -0.6614125480999999417974777315976098 19.0128070456709394875360885635018349 19.0128074675123386327868502121418715 16.7054786499265404131620016414672136 + 97 1 3 -0.6614125480999999417974777315976098 5.8092958879240672587229710188694298 16.7054783005063463008355029160156846 20.5977324335008376010591746307909489 + 98 1 3 -0.6614125480999999417974777315976098 20.5977301425774470544638461433351040 9.7015481188062686612738616531714797 5.8092944042885532596187658782582730 + 99 1 3 -0.6614125480999999417974777315976098 20.5977301400728656233241053996607661 16.7054783015092667142198479268699884 5.8092943997067569839032330492045730 + 100 1 3 -0.6614125480999999417974777315976098 5.8092958876427820413823610579129308 9.7015481210446257165358474594540894 20.5977324270892765412099834065884352 + 101 1 3 -0.6614125480999999417974777315976098 5.8092958752098597940971558273304254 9.7015481211045688780814089113846421 5.8092944116117468666971035418100655 + 102 1 3 -0.6614125480999999417974777315976098 20.5977301274566038102875609183683991 16.7054783014434455878927110461518168 20.5977324388839591051691968459635973 + 103 1 3 -0.6614125480999999417974777315976098 20.5977301301355062435050058411434293 9.7015481186871035390595352509990335 20.5977324344775460929213295457884669 + 104 1 3 -0.6614125480999999417974777315976098 5.8092958754208696703358327795285732 16.7054783005406477514043217524886131 5.8092944051289316931274697708431631 + 105 1 3 -0.6614125480999999417974777315976098 5.8092949017410688838936039246618748 20.5977298991426849283925548661500216 9.7015485084123813663836699561215937 + 106 1 3 -0.6614125480999999417974777315976098 20.5977311254701582754478295100852847 5.8092965212149643150496558519080281 16.7054783203509877864689769921824336 + 107 1 3 -0.6614125480999999417974777315976098 20.5977311213527762845387769630178809 5.8092965253640072020857587631326169 9.7015485077352501264158490812405944 + 108 1 3 -0.6614125480999999417974777315976098 5.8092948975013145584966878232080489 20.5977299033513006065732042770832777 16.7054783197338672096066147787496448 + 109 1 3 -0.6614125480999999417974777315976098 5.8092948913148871881162449426483363 5.8092965273910293078074573713820428 16.7054783188796989179536467418074608 + 110 1 3 -0.6614125480999999417974777315976098 20.5977311144287682509457226842641830 20.5977299054634386266116052865982056 9.7015485067859241752330490271560848 + 111 1 3 -0.6614125480999999417974777315976098 20.5977311187387677193783019902184606 20.5977299097761239465853577712550759 16.7054783214311690642261964967474341 + 112 1 3 -0.6614125480999999417974777315976098 5.8092948958969143902208998042624444 5.8092965319653133704491665412206203 9.7015485095041622543021730962209404 + 113 1 3 -0.6614125480999999417974777315976098 7.3942187611208280983987606305163354 16.7054782673867414644064410822466016 7.3942180412462903404957614839076996 + 114 1 3 -0.6614125480999999417974777315976098 19.0128072665808041108448378508910537 9.7015481487976540364570610108785331 19.0128087749036005504876811755821109 + 115 1 3 -0.6614125480999999417974777315976098 19.0128072637524319077328982530161738 16.7054782725891541872442758176475763 19.0128087808776520262199483113363385 + 116 1 3 -0.6614125480999999417974777315976098 7.3942187607602267718220900860615075 9.7015481525794484696234576404094696 7.3942180492968132554665317002218217 + 117 1 3 -0.6614125480999999417974777315976098 19.0128072681088831075157941086217761 9.7015481513881791642006646725349128 7.3942180528998298072451689222361892 + 118 1 3 -0.6614125480999999417974777315976098 7.3942187627146598316585368593223393 16.7054782700166448705658694962039590 19.0128087864319539335156150627881289 + 119 1 3 -0.6614125480999999417974777315976098 7.3942187622570276772648867336101830 9.7015481499845694912664839648641646 19.0128087784795489767475373810157180 + 120 1 3 -0.6614125480999999417974777315976098 19.0128072654169599786655453499406576 16.7054782699551758184952632291242480 7.3942180467881630789861446828581393 + 121 1 3 -0.6614125480999999417974777315976098 16.7054779462080809082635823870077729 7.3942181373565327717756190395448357 19.0128089291277326822182658361271024 + 122 1 3 -0.6614125480999999417974777315976098 9.7015480683850832122061547124758363 19.0128083000016694370515324408188462 7.3942179110456356383451748115476221 + 123 1 3 -0.6614125480999999417974777315976098 16.7054779464473988070949417306110263 19.0128082993325300265041732927784324 7.3942179117071376026615325827151537 + 124 1 3 -0.6614125480999999417974777315976098 9.7015480679456729262710723560303450 7.3942181384685099487796833273023367 19.0128089280246150849507102975621819 + 125 1 3 -0.6614125480999999417974777315976098 9.7015480657450723356305388733744621 19.0128082984084976203575934050604701 19.0128089166837881407445820514112711 + 126 1 3 -0.6614125480999999417974777315976098 16.7054779434552109762535110348835588 7.3942181355549658761106002202723175 7.3942178983506563483274476311635226 + 127 1 3 -0.6614125480999999417974777315976098 9.7015480704414240875621544546447694 7.3942181371201511907997883099596947 7.3942178999110481640855141449719667 + 128 1 3 -0.6614125480999999417974777315976098 16.7054779489779363643719989340752363 19.0128082978158339244600938400253654 19.0128089161001945228690601652488112 + 129 1 3 -0.6614125480999999417974777315976098 16.7054782227603837441165524069219828 5.8092939274234378643768650363199413 5.8092955786821107722062151879072189 + 130 1 3 -0.6614125480999999417974777315976098 9.7015477910991965160292238579131663 20.5977324837256219325354322791099548 20.5977312604598665757293929345905781 + 131 1 3 -0.6614125480999999417974777315976098 16.7054782222166835481402813456952572 20.5977324824371059719396725995466113 20.5977312591786052564657438779249787 + 132 1 3 -0.6614125480999999417974777315976098 9.7015477929291300540626252768561244 5.8092939282851405735641492356080562 5.8092955795372036575940910552162677 + 133 1 3 -0.6614125480999999417974777315976098 9.7015477927467053120835771551355720 5.8092939405732488822309278475586325 20.5977312593216446146016096463426948 + 134 1 3 -0.6614125480999999417974777315976098 16.7054782221912674344821425620466471 20.5977324948995530462525493931025267 5.8092955795570091481749841477721930 + 135 1 3 -0.6614125480999999417974777315976098 9.7015477911436871494288425310514867 20.5977324962684740228269220096990466 5.8092955781939252801748807542026043 + 136 1 3 -0.6614125480999999417974777315976098 16.7054782225499032222160167293623090 5.8092939401670777854747029778081924 20.5977312597170971741888934047892690 + 137 1 4 0.8023877470999999372835986832797062 6.6017571969835175949015138030517846 6.6017559437386283960336186282802373 2.9116401488184662227354237984400243 + 138 1 4 0.8023877470999999372835986832797062 19.8052688195818298311223770724609494 19.8052704863584274619370262371376157 23.4953866980199528313733026152476668 + 139 1 4 0.8023877470999999372835986832797062 19.8052688183239204988694837084040046 19.8052704856782035847118095261976123 2.9116401520553725212892004492459819 + 140 1 4 0.8023877470999999372835986832797062 6.6017571955836666930395040253642946 6.6017559430250853935717714193742722 23.4953867012559136639993084827437997 + 141 1 4 0.8023877470999999372835986832797062 19.8052688258025213485780113842338324 6.6017559439238882035283495497424155 23.4953866997633120661248540272936225 + 142 1 4 0.8023877470999999372835986832797062 6.6017572028717568244360336393583566 19.8052704869948463795026327716186643 2.9116401505074249733695523900678381 + 143 1 4 0.8023877470999999372835986832797062 6.6017572017339434253813124087173492 19.8052704878974275004566152347251773 23.4953866995706448506098240613937378 + 144 1 4 0.8023877470999999372835986832797062 19.8052688255519200311027816496789455 6.6017559456832000108761349110864103 2.9116401503125768357449487666599452 + 145 1 4 0.8023877470999999372835986832797062 2.9116401612969129431007786479312927 6.6017578088235699951269452867563814 6.6017567029365027408971400291193277 + 146 1 4 0.8023877470999999372835986832797062 23.4953858693740684771000815089792013 19.8052686062430218782992596970871091 19.8052701278573941578997619217261672 + 147 1 4 0.8023877470999999372835986832797062 2.9116401653847452379864080285187811 19.8052686083734208466466952813789248 19.8052701257283985114554525353014469 + 148 1 4 0.8023877470999999372835986832797062 23.4953858742513190804857003968209028 6.6017578073222944468056994082871825 6.6017567044375065066219576692674309 + 149 1 4 0.8023877470999999372835986832797062 23.4953858717166710334822710137814283 19.8052686176479504354119853815063834 6.6017567090324922318700373580213636 + 150 1 4 0.8023877470999999372835986832797062 2.9116401635720716711830391432158649 6.6017578204409961273313456331379712 19.8052701342124066741234855726361275 + 151 1 4 0.8023877470999999372835986832797062 23.4953858719134451860099943587556481 6.6017578179544464944683568319305778 19.8052701317253472268475888995453715 + 152 1 4 0.8023877470999999372835986832797062 2.9116401631070232269848929718136787 19.8052686195107732203268824378028512 6.6017567108934578357093414524570107 + 153 1 4 0.8023877470999999372835986832797062 6.6017556091303815080095773737411946 2.9116401529908246814670746971387416 6.6017583561851527207409162656404078 + 154 1 4 0.8023877470999999372835986832797062 19.8052704016008718213015526998788118 23.4953862854585153741027170326560736 19.8052684797876885625100840115919709 + 155 1 4 0.8023877470999999372835986832797062 19.8052704036894162697990395827218890 2.9116401567873730904523199569666758 19.8052684772410430014133453369140625 + 156 1 4 0.8023877470999999372835986832797062 6.6017556064066349463814731279853731 23.4953862892921669924817251740023494 6.6017583573405733687877727788873017 + 157 1 4 0.8023877470999999372835986832797062 6.6017556174052440809418840217404068 23.4953862869670899726770585402846336 19.8052684791960373900110425893217325 + 158 1 4 0.8023877470999999372835986832797062 19.8052704150917406877852044999599457 2.9116401544995409444993583747418597 6.6017583596334485918077916721813381 + 159 1 4 0.8023877470999999372835986832797062 19.8052704127173413439777505118399858 23.4953862877626882266213215189054608 6.6017583568007758287876640679314733 + 160 1 4 0.8023877470999999372835986832797062 6.6017556204024048227552157186437398 2.9116401552464652446872150903800502 19.8052684806248606719236704520881176 + 161 1 4 0.8023877470999999372835986832797062 6.6017569871427506100758364482317120 19.8052686155319364047500130254775286 16.1151530027094409547316899988800287 + 162 1 4 0.8023877470999999372835986832797062 19.8052690279446146348618640331551433 6.6017578126316776021553778264205903 10.2918738240178040399541714577935636 + 163 1 4 0.8023877470999999372835986832797062 19.8052690337015597776826325571164489 6.6017578068506432842355025059077889 16.1151530029257905596296041039749980 + 164 1 4 0.8023877470999999372835986832797062 6.6017569927509436311652279982808977 19.8052686099487900150961650069802999 10.2918738242353455802913231309503317 + 165 1 4 0.8023877470999999372835986832797062 19.8052690286696808641409006668254733 19.8052686115258715915388165740296245 10.2918738227387400741008605109527707 + 166 1 4 0.8023877470999999372835986832797062 6.6017569886354863228916656225919724 6.6017578086619037591731284919660538 16.1151530013772017468909325543791056 + 167 1 4 0.8023877470999999372835986832797062 6.6017569935325024488292910973541439 6.6017578135548173889901590882800519 10.2918738255669737213793268892914057 + 168 1 4 0.8023877470999999372835986832797062 19.8052690340270665103616920532658696 19.8052686168877833949863997986540198 16.1151530042017192556613736087456346 + 169 1 4 0.8023877470999999372835986832797062 6.6017573607993993434206458914559335 16.1151528052077495090088632423430681 19.8052706494171779638691077707335353 + 170 1 4 0.8023877470999999372835986832797062 19.8052686681010499114563572220504284 10.2918736136625295074509267578832805 6.6017561876353383354398829396814108 + 171 1 4 0.8023877470999999372835986832797062 19.8052686692267663204347627470269799 16.1151528056969297608702618163079023 6.6017561797337460660628494224511087 + 172 1 4 0.8023877470999999372835986832797062 6.6017573584041384648912753618787974 10.2918736141181028642677119933068752 19.8052706453486599968982773134484887 + 173 1 4 0.8023877470999999372835986832797062 6.6017573516964329627398910815827549 10.2918736152040821707487339153885841 6.6017561870587400107979192398488522 + 174 1 4 0.8023877470999999372835986832797062 19.8052686626823195581437175860628486 16.1151528067376936803611897630617023 19.8052706529029336479652556590735912 + 175 1 4 0.8023877470999999372835986832797062 19.8052686612313095793069805949926376 10.2918736126082421833416447043418884 19.8052706446759039238258992554619908 + 176 1 4 0.8023877470999999372835986832797062 6.6017573542667236097258864901959896 16.1151528041889378073392435908317566 6.6017561831653850390466686803847551 + 177 1 4 0.8023877470999999372835986832797062 16.1151526067618817705806577578186989 6.6017559759992918699822439521085471 19.8052701376361355301014555152505636 + 178 1 4 0.8023877470999999372835986832797062 10.2918734059065446473368865554220974 19.8052704597004378683777758851647377 6.6017567011958844247487832035403699 + 179 1 4 0.8023877470999999372835986832797062 16.1151526067073120884742820635437965 19.8052704618172157324806903488934040 6.6017566990795506498557188024278730 + 180 1 4 0.8023877470999999372835986832797062 10.2918734065027450697016320191323757 6.6017559744341305361103877658024430 19.8052701392002177271933760493993759 + 181 1 4 0.8023877470999999372835986832797062 10.2918734048056492724754207301884890 19.8052704530323850917739036958664656 19.8052701313082444301016948884353042 + 182 1 4 0.8023877470999999372835986832797062 16.1151526057216081255774042801931500 6.6017559699027463793186143448110670 6.6017566953932256268444689339958131 + 183 1 4 0.8023877470999999372835986832797062 10.2918734076050899517440484487451613 6.6017559673846424317389391944743693 6.6017566928753890209691235213540494 + 184 1 4 0.8023877470999999372835986832797062 16.1151526077415532256509322905912995 19.8052704549817875090411689598113298 19.8052701332566059022610716056078672 + 185 1 5 -0.1059498145999999973998484392723185 7.4580708971362907888646986975800246 5.7454397499282556793787080096080899 0.6950441809839732476561380281054880 + 186 1 5 -0.1059498145999999973998484392723185 18.9489551150479549335159390466287732 20.6615866757037238699012959841638803 25.7119826716055186466292070690542459 + 187 1 5 -0.1059498145999999973998484392723185 18.9489551141377923215713963145390153 20.6615866760237167909508571028709412 0.6950441813029240023524835123680532 + 188 1 5 -0.1059498145999999973998484392723185 7.4580708960956281217136165651027113 5.7454397501657616942338790977373719 25.7119826719217101640424516517668962 + 189 1 5 -0.1059498145999999973998484392723185 18.9489552061429051832419645506888628 5.7454396712088087184611140401102602 25.7119826717282329298086551716551185 + 190 1 5 -0.1059498145999999973998484392723185 7.4580709874804735903808250441215932 20.6615865971249483834526472492143512 0.6950441811858094620646397743257694 + 191 1 5 -0.1059498145999999973998484392723185 7.4580709864703598199753287190105766 20.6615865968299345922787324525415897 25.7119826717274975180771434679627419 + 192 1 5 -0.1059498145999999973998484392723185 18.9489552053725631708402943331748247 5.7454396711167001754461125528905541 0.6950441811556488103107653842016589 + 193 1 5 -0.1059498145999999973998484392723185 0.6950442013570656829557492528692819 7.4580714055883348123643372673541307 5.7454404384383632731214675004594028 + 194 1 5 -0.1059498145999999973998484392723185 25.7119818361682952456703787902370095 18.9489550041569643212824303191155195 20.6615863853566459340527217136695981 + 195 1 5 -0.1059498145999999973998484392723185 0.6950442013678133079679355432745069 18.9489550038616485494458174798637629 20.6615863856523027664024994010105729 + 196 1 5 -0.1059498145999999973998484392723185 25.7119818370475208268999267602339387 7.4580714047603722249846214253921062 5.7454404392666607037654102896340191 + 197 1 5 -0.1059498145999999973998484392723185 25.7119818364503593954850657610222697 18.9489551023581306310461513930931687 5.7454403654191388284289132570847869 + 198 1 5 -0.1059498145999999973998484392723185 0.6950442015629493264228244697733317 7.4580715037794869104459394293371588 20.6615863123799385903112124651670456 + 199 1 5 -0.1059498145999999973998484392723185 25.7119818367882828624715330079197884 7.4580715028148123479923015111126006 20.6615863114149362900207052007317543 + 200 1 5 -0.1059498145999999973998484392723185 0.6950442011640962647334163193590939 18.9489551020285560412048653233796358 5.7454403650892471588917942426633090 + 201 1 5 -0.1059498145999999973998484392723185 5.7454408619173022998438682407140732 0.6950441931181976507048148050671443 7.4580736949951553782511837198399007 + 202 1 5 -0.1059498145999999973998484392723185 20.6615851428490451269226468866690993 25.7119822508355113654943124856799841 18.9489531389739340738742612302303314 + 203 1 5 -0.1059498145999999973998484392723185 20.6615851440200444244510435964912176 0.6950441935380002878019922718522139 18.9489531381121594222349813207983971 + 204 1 5 -0.1059498145999999973998484392723185 5.7454408611923186711578637186903507 25.7119822511307773993394221179187298 7.4580736946819214949755405541509390 + 205 1 5 -0.1059498145999999973998484392723185 5.7454407944009684428010586998425424 25.7119822508835156327222648542374372 18.9489532224887504696653195424005389 + 206 1 5 -0.1059498145999999973998484392723185 20.6615850773308729060318000847473741 0.6950441933570803421105210873065516 7.4580737791033016037545166909694672 + 207 1 5 -0.1059498145999999973998484392723185 20.6615850761211738984002295183017850 25.7119822510679902904939808649942279 7.4580737782028174720494462235365063 + 208 1 5 -0.1059498145999999973998484392723185 5.7454407951667132437023610691539943 0.6950441933110265146922301937593147 18.9489532222162786467833939241245389 + 209 1 5 -0.1059498145999999973998484392723185 5.7454437639006101790073444135487080 7.4580719652853399992409322294406593 25.7119826765996606354747200384736061 + 210 1 5 -0.1059498145999999973998484392723185 20.6615822465654090933639963623136282 18.9489544609573954403458628803491592 0.6950441766027186663023940127459355 + 211 1 5 -0.1059498145999999973998484392723185 20.6615822463033431688472774112597108 18.9489544618096878991764242528006434 25.7119826763005541181428270647302270 + 212 1 5 -0.1059498145999999973998484392723185 5.7454437637728386079061237978748977 7.4580719662163321714842822984792292 0.6950441762923532662554748640104663 + 213 1 5 -0.1059498145999999973998484392723185 5.7454436914262831948008170002140105 18.9489545447594629479226568946614861 0.6950441764820020074111539543082472 + 214 1 5 -0.1059498145999999973998484392723185 20.6615821745183616542362869950011373 7.4580720490207008666061483381781727 25.7119826764425347676024102838709950 + 215 1 5 -0.1059498145999999973998484392723185 20.6615821749186423517130606342107058 7.4580720500992896404568455182015896 0.6950441764837008706834353688464034 + 216 1 5 -0.1059498145999999973998484392723185 5.7454436915829996124216449970845133 18.9489545456313450699781242292374372 25.7119826764082297643199126468971372 + 217 1 5 -0.1059498145999999973998484392723185 7.4580701279839782813496640301309526 0.6950441826629887298594212552416138 20.6615832383025335161619295831769705 + 218 1 5 -0.1059498145999999973998484392723185 18.9489560729071442324311647098511457 25.7119822631230405818314466159790754 5.7454434339951694354908795503433794 + 219 1 5 -0.1059498145999999973998484392723185 18.9489560731493433820560312597081065 0.6950441825116903116210664848040324 5.7454434338960593819933819759171456 + 220 1 5 -0.1059498145999999973998484392723185 7.4580701262156781083945134014356881 25.7119822631029819604009389877319336 20.6615832375403520870804641162976623 + 221 1 5 -0.1059498145999999973998484392723185 18.9489559747363998098990123253315687 25.7119822628628753591328859329223633 20.6615833167373317280635092174634337 + 222 1 5 -0.1059498145999999973998484392723185 7.4580700298500319789241075341124088 0.6950441824498451159897172146884259 5.7454435124676823676281856023706496 + 223 1 5 -0.1059498145999999973998484392723185 7.4580700281226466330508628743700683 25.7119822633614525386747118318453431 5.7454435131889471932709057000465691 + 224 1 5 -0.1059498145999999973998484392723185 18.9489559749332450167003116803243756 0.6950441827270334993471578854951076 20.6615833168818028298119315877556801 + 225 1 5 -0.1059498145999999973998484392723185 0.6950441927525650154251479762024246 5.7454444429621238654704029613640159 18.9489540248361194585413613822311163 + 226 1 5 -0.1059498145999999973998484392723185 25.7119818452198529712404706515371799 20.6615818308195287045236909762024879 7.4580729829961649457459316181484610 + 227 1 5 -0.1059498145999999973998484392723185 0.6950441924748893551821993241901509 20.6615818317253463476390606956556439 7.4580729839017072535511942987795919 + 228 1 5 -0.1059498145999999973998484392723185 25.7119818454976538646405970212072134 5.7454444431846685148457254399545491 18.9489540250583878844281571218743920 + 229 1 5 -0.1059498145999999973998484392723185 25.7119818457634998765115597052499652 5.7454445100197322204849115223623812 7.4580728920647079149830460664816201 + 230 1 5 -0.1059498145999999973998484392723185 0.6950441926439864248621347542211879 20.6615818984543473391113366233184934 18.9489539332869867394038010388612747 + 231 1 5 -0.1059498145999999973998484392723185 25.7119818449816754935000062687322497 20.6615818975234937227014597738161683 18.9489539342175454805783374467864633 + 232 1 5 -0.1059498145999999973998484392723185 0.6950441925743315874086647454532795 5.7454445096577941853865922894328833 7.4580728924263581802733824588358402 + 233 1 5 -0.1059498145999999973998484392723185 7.4580729302309380912561209697742015 18.9489547151559953874766506487503648 13.8985570305491759057758827111683786 + 234 1 5 -0.1059498145999999973998484392723185 18.9489532010598011879665136802941561 7.4580718211063397049542800232302397 12.5084697972563194667827701778151095 + 235 1 5 -0.1059498145999999973998484392723185 18.9489532033959946488721470814198256 7.4580718187641892313877178821712732 13.8985570305666872314986903802491724 + 236 1 5 -0.1059498145999999973998484392723185 7.4580729325472310264899533649440855 18.9489547128455839697380724828690290 12.5084697972855973802097651059739292 + 237 1 5 -0.1059498145999999973998484392723185 18.9489531691363914944759017089381814 18.9489546339782002348783862544223666 12.5084697971020268880693038227036595 + 238 1 5 -0.1059498145999999973998484392723185 7.4580728989384033056353473511990160 7.4580717399356037944357922242488712 13.8985570304538210706368772662244737 + 239 1 5 -0.1059498145999999973998484392723185 7.4580729011568465125492366496473551 7.4580717421530522415196173824369907 12.5084697974000942366501476499252021 + 240 1 5 -0.1059498145999999973998484392723185 18.9489531714208681023592362180352211 18.9489546362637106824422517092898488 13.8985570307178303295359000912867486 + 241 1 5 -0.1059498145999999973998484392723185 5.7454428646167983174564142245799303 13.8985568174475098146558593725785613 20.6615858710343189841296407394111156 + 242 1 5 -0.1059498145999999973998484392723185 20.6615830426312960810264485189691186 12.5084695981625877436727023450657725 5.7454408383688111428000411251559854 + 243 1 5 -0.1059498145999999973998484392723185 20.6615830429396645229189743986353278 13.8985568176175284804685361450538039 5.7454408362793127906797963078133762 + 244 1 5 -0.1059498145999999973998484392723185 5.7454428644178960894350893795490265 12.5084695981115139318262663437053561 20.6615858695269452027787338010966778 + 245 1 5 -0.1059498145999999973998484392723185 5.7454428953876659491584177885670215 12.5084695982135318814698621281422675 5.7454409218753008659064107632730156 + 246 1 5 -0.1059498145999999973998484392723185 20.6615830738697674462400755146518350 13.8985568176802480877540801884606481 20.6615859551577614183770492672920227 + 247 1 5 -0.1059498145999999973998484392723185 20.6615830735143930496633402071893215 12.5084695980550915095363961881957948 20.6615859530212446770747192203998566 + 248 1 5 -0.1059498145999999973998484392723185 5.7454428956132863604011618008371443 13.8985568173849394213448249502107501 5.7454409203946585904532184940762818 + 249 1 5 -0.1059498145999999973998484392723185 5.7454411757135526173101425229106098 20.6615822998266018828417145414277911 12.5084698058763432726436803932301700 + 250 1 5 -0.1059498145999999973998484392723185 20.6615847275626762780120770912617445 5.7454440012910703572401871497277170 13.8985570156510167549868128844536841 + 251 1 5 -0.1059498145999999973998484392723185 20.6615847262415677221270016161724925 5.7454440026181039513630821602419019 12.5084698058594128156073566060513258 + 252 1 5 -0.1059498145999999973998484392723185 5.7454411744114439741792921267915517 20.6615823011227952576973621034994721 13.8985570156290538790244681877084076 + 253 1 5 -0.1059498145999999973998484392723185 5.7454412111429027376630074286367744 5.7454440851618375774023661506362259 13.8985570155367987865702161798253655 + 254 1 5 -0.1059498145999999973998484392723185 20.6615847621490651420117501402273774 20.6615823836508631927699752850458026 12.5084698056968157686696940800175071 + 255 1 5 -0.1059498145999999973998484392723185 20.6615847634246385666756395949050784 20.6615823849274420354049652814865112 13.8985570158108124871887412155047059 + 256 1 5 -0.1059498145999999973998484392723185 5.7454412123454199345928827824536711 5.7454440863633191582948711584322155 12.5084698059560448513138908310793340 + 257 1 5 -0.1059498145999999973998484392723185 7.4580719115339624281091346347238868 13.8985568228728926243320529465563595 7.4580712427149853382957189751323313 + 258 1 5 -0.1059498145999999973998484392723185 18.9489541459341523932380368933081627 12.5084695956380489434422997874207795 18.9489555442818513597558194305747747 + 259 1 5 -0.1059498145999999973998484392723185 18.9489541462100135049695381894707680 13.8985568230439433534684212645515800 18.9489555463615104713426262605935335 + 260 1 5 -0.1059498145999999973998484392723185 7.4580719112295534856116319133434445 12.5084695960381839796582426060922444 7.4580712441395098366569982317741960 + 261 1 5 -0.1059498145999999973998484392723185 18.9489541905043772374028776539489627 12.5084695958021132611293069203384221 7.4580713233278546070437187154311687 + 262 1 5 -0.1059498145999999973998484392723185 7.4580719560075552365674411703366786 13.8985568229809732798685217858292162 18.9489556249339727855840465053915977 + 263 1 5 -0.1059498145999999973998484392723185 7.4580719557308325917688307526987046 12.5084695958879006383313026162795722 18.9489556234817513313828385435044765 + 264 1 5 -0.1059498145999999973998484392723185 18.9489541907326355385521310381591320 13.8985568229323952493814431363716722 7.4580713212957965296823203971143812 + 265 1 5 -0.1059498145999999973998484392723185 13.8985566159234270600109084625728428 7.4580718594840762492026442487258464 18.9489565485389412913264095550402999 + 266 1 5 -0.1059498145999999973998484392723185 12.5084693947678626813058144762180746 18.9489546986920451843161572469398379 7.4580704108624340520350415317807347 + 267 1 5 -0.1059498145999999973998484392723185 13.8985566155832493961952422978356481 18.9489546989794241937943297671154141 7.4580704105749866528185521019622684 + 268 1 5 -0.1059498145999999973998484392723185 12.5084693951526784161387695348821580 7.4580718592240327069475824828259647 18.9489565487989040093452786095440388 + 269 1 5 -0.1059498145999999973998484392723185 12.5084693945937761583309111301787198 18.9489546541589071182443149155005813 18.9489564567750505830190377309918404 + 270 1 5 -0.1059498145999999973998484392723185 13.8985566158405600134528867783956230 7.4580718150593412474336219020187855 7.4580703191665032036894444900099188 + 271 1 5 -0.1059498145999999973998484392723185 12.5084693953141758981928433058783412 7.4580718146667299706109588441904634 7.4580703187739700865677150432020426 + 272 1 5 -0.1059498145999999973998484392723185 13.8985566156998032738556503318250179 18.9489546544273181893913715612143278 18.9489564570435646828627795912325382 + 273 1 5 -0.1059498145999999973998484392723185 13.8985566194613703316917963093146682 5.7454398949302953880646782636176795 5.7454429050832018788241839502006769 + 274 1 5 -0.1059498145999999973998484392723185 12.5084693910432065422355663031339645 20.6615864785719303142741409828886390 20.6615839648224124402986490167677402 + 275 1 5 -0.1059498145999999973998484392723185 13.8985566193143501578788345796056092 20.6615864788959946451996074756607413 20.6615839651465549309250491205602884 + 276 1 5 -0.1059498145999999973998484392723185 12.5084693915699141086861345684155822 5.7454398945650346774982608621940017 5.7454429047180015643903061572927982 + 277 1 5 -0.1059498145999999973998484392723185 12.5084693914548790161234137485735118 5.7454398636567773905881040263921022 20.6615838866345065127916313940659165 + 278 1 5 -0.1059498145999999973998484392723185 13.8985566192695042531113358563743532 20.6615864479913255991050391457974911 5.7454428262548882244686865305993706 + 279 1 5 -0.1059498145999999973998484392723185 12.5084693911513404884772171499207616 20.6615864476536295057940151309594512 5.7454428265926145158459803496953100 + 280 1 5 -0.1059498145999999973998484392723185 13.8985566195294705238438837113790214 5.7454398638876575944323121802881360 20.6615838864036760469389264471828938 + 281 1 6 -0.1322994435000000024160726752597839 6.6017573175543917685104133852291852 6.6017558544204808512745330517645925 1.4058275047511632482866161808487959 + 282 1 6 -0.1322994435000000024160726752597839 19.8052686946648925925273942993953824 19.8052705736806338165933993877843022 25.0011993450795593219027068698778749 + 283 1 6 -0.1322994435000000024160726752597839 19.8052686940967994644324789987877011 19.8052705729717573035486566368490458 1.4058275063938752147407740267226472 + 284 1 6 -0.1322994435000000024160726752597839 6.6017573168733187927159633545670658 6.6017558536237483934883130132220685 25.0011993467347437558601086493581533 + 285 1 6 -0.1322994435000000024160726752597839 19.8052687039226142928782792296260595 6.6017558559186682032304815948009491 25.0011993459617194446309440536424518 + 286 1 6 -0.1322994435000000024160726752597839 6.6017573260327626627486097277142107 19.8052705751936350964115263195708394 1.4058275055949498444363143789814785 + 287 1 6 -0.1322994435000000024160726752597839 6.6017573252913637205097074911464006 19.8052705758471532249131996650248766 25.0011993458844692383991059614345431 + 288 1 6 -0.1322994435000000024160726752597839 19.8052687031588767752054991433396935 6.6017558565150649130259807861875743 1.4058275055127387176412412372883409 + 289 1 6 -0.1322994435000000024160726752597839 1.4058275221485234673934883176116273 6.6017579463754652024931601772550493 6.6017566583158551196675034589134157 + 290 1 6 -0.1322994435000000024160726752597839 25.0011985121456312697318935533985496 19.8052684635848095240362454205751419 19.8052701681534024658049020217731595 + 291 1 6 -0.1322994435000000024160726752597839 1.4058275241037234692953461490105838 19.8052684632012230281361553352326155 19.8052701685373335749318357557058334 + 292 1 6 -0.1322994435000000024160726752597839 25.0011985148417004154453024966642261 6.6017579466357920736641062831040472 6.6017566580564679412646000855602324 + 293 1 6 -0.1322994435000000024160726752597839 25.0011985133830023642076412215828896 19.8052684784341188617418083595111966 6.6017566665979003914799250196665525 + 294 1 6 -0.1322994435000000024160726752597839 1.4058275233275152604761615293682553 6.6017579611291949959195335395634174 19.8052701763863190365100308554247022 + 295 1 6 -0.1322994435000000024160726752597839 25.0011985136042547139823000179603696 6.6017579615792678637831158994231373 19.8052701768356378408952878089621663 + 296 1 6 -0.1322994435000000024160726752597839 1.4058275229200425382458661260898225 19.8052684781102321665002818917855620 6.6017566662737454663556491141207516 + 297 1 6 -0.1322994435000000024160726752597839 6.6017554472336872350979319890029728 1.4058275131037145655454878578893840 6.6017585859901428690932334575336426 + 298 1 6 -0.1322994435000000024160726752597839 19.8052705590306814542600477579981089 25.0011989284290727653115027351304889 19.8052682465632727826232439838349819 + 299 1 6 -0.1322994435000000024160726752597839 19.8052705586119621727902995189651847 1.4058275150752024273970164358615875 19.8052682469281648991454858332872391 + 300 1 6 -0.1322994435000000024160726752597839 6.6017554461989043090852646855637431 25.0011989304518777998964651487767696 6.6017585857008196370543373632244766 + 301 1 6 -0.1322994435000000024160726752597839 6.6017554610600033271339270868338645 25.0011989292222516212405025726184249 19.8052682491153184685117594199255109 + 302 1 6 -0.1322994435000000024160726752597839 19.8052705734770455592297366820275784 1.4058275138837339479636057149036787 6.6017585878259819054392210091464221 + 303 1 6 -0.1322994435000000024160726752597839 19.8052705739498335901771497447043657 25.0011989296662200388254859717562795 6.6017585882449978385011490900069475 + 304 1 6 -0.1322994435000000024160726752597839 6.6017554620446778912423724250402302 1.4058275142965284132401393435429782 19.8052682487758815454981231596320868 + 305 1 6 -0.1322994435000000024160726752597839 6.6017570540865415651410330610815436 19.8052685071528102866977860685437918 14.6093403541877062679077425855211914 + 306 1 6 -0.1322994435000000024160726752597839 19.8052689611235734901129035279154778 6.6017579152870942138520149455871433 11.7976864712139608570851123658940196 + 307 1 6 -0.1322994435000000024160726752597839 19.8052689645113488836614124011248350 6.6017579118871658749867492588236928 14.6093403543113797837804668233729899 + 308 1 6 -0.1322994435000000024160726752597839 6.6017570575187463077782012987881899 19.8052685037325524319840042153373361 11.7976864713313140953232505125924945 + 309 1 6 -0.1322994435000000024160726752597839 19.8052689624988467187449714401736856 19.8052685058938955364737921627238393 11.7976864705712731762332623475231230 + 310 1 6 -0.1322994435000000024160726752597839 6.6017570561619747238069066952448338 6.6017579140072291110641344857867807 14.6093403535029207063189460313878953 + 311 1 6 -0.1322994435000000024160726752597839 6.6017570597341110882894099631812423 6.6017579175772374000530362536665052 11.7976864720094543059758507297374308 + 312 1 6 -0.1322994435000000024160726752597839 19.8052689659718019754564011236652732 19.8052685093688829454094957327470183 14.6093403549617697478879563277587295 + 313 1 6 -0.1322994435000000024160726752597839 6.6017574053606518091896759869996458 14.6093401542632186362880020169541240 19.8052707352231784909690759377554059 + 314 1 6 -0.1322994435000000024160726752597839 19.8052686221762392904111038660630584 11.7976862640312685215349119971506298 6.6017560960608232534241324174217880 + 315 1 6 -0.1322994435000000024160726752597839 19.8052686217338376195584714878350496 14.6093401544842080852504295762628317 6.6017560928600182990066969068720937 + 316 1 6 -0.1322994435000000024160726752597839 6.6017574057480166160871704050805420 11.7976862641974857837112722336314619 19.8052707313446134662626718636602163 + 317 1 6 -0.1322994435000000024160726752597839 6.6017573986869475533012519008480012 11.7976862648172424741233044187538326 6.6017560986098740016814190312288702 + 318 1 6 -0.1322994435000000024160726752597839 19.8052686145630616465496132150292397 14.6093401550498427354796149302273989 19.8052707370506801964893384138122201 + 319 1 6 -0.1322994435000000024160726752597839 19.8052686150676784393453999655321240 11.7976862634185888367710504098795354 19.8052707339121276675086846807971597 + 320 1 6 -0.1322994435000000024160726752597839 6.6017573982674679911042403546161950 14.6093401536980831423306881333701313 6.6017560946991507009329325228463858 + 321 1 6 -0.1322994435000000024160726752597839 14.6093399536505863522961590206250548 6.6017558691514413027334740036167204 19.8052702109229663562928180908784270 + 322 1 6 -0.1322994435000000024160726752597839 11.7976860582093170393136460916139185 19.8052705662532773089878901373594999 6.6017566256458914963900497241411358 + 323 1 6 -0.1322994435000000024160726752597839 14.6093399534383561189088140963576734 19.8052705658612886452374368673190475 6.6017566260375746267641261511016637 + 324 1 6 -0.1322994435000000024160726752597839 11.7976860586379057593831021222285926 6.6017558694113231965161503467243165 19.8052702106633340406460774829611182 + 325 1 6 -0.1322994435000000024160726752597839 11.7976860575862900759602780453860760 19.8052705591102977678019669838249683 19.8052702042829906758925062604248524 + 326 1 6 -0.1322994435000000024160726752597839 14.6093399530987824164185440167784691 6.6017558619617942028412471699994057 6.6017566189127236953027022536844015 + 327 1 6 -0.1322994435000000024160726752597839 11.7976860592617303069573608809150755 6.6017558624057777194593654712662101 6.6017566193566379340040839451830834 + 328 1 6 -0.1322994435000000024160726752597839 14.6093399539863870728595429682172835 19.8052705587580994972540793241932988 19.8052702039311974147040018578991294 + 329 1 7 0.1527568014000000029550818680945667 8.1234662164874187340046773897483945 5.0800424375191806092288970830850303 1.2305547890469650251787925299140625 + 330 1 7 0.1527568014000000029550818680945667 18.2835597943903565010259626433253288 21.3269839897042778886770975077524781 25.1764720648117439338875556131824851 + 331 1 7 0.1527568014000000029550818680945667 18.2835597944790855251540051540359855 21.3269839884136942487202759366482496 1.2305547891325354648017764702672139 + 332 1 7 0.1527568014000000029550818680945667 8.1234662164589153121596609707921743 5.0800424361419915797455360007006675 25.1764720648963944427123351488262415 + 333 1 7 0.1527568014000000029550818680945667 18.2835599509758424119354458525776863 5.0800422920921723957121685089077801 25.1764720649007145425457565579563379 + 334 1 7 0.1527568014000000029550818680945667 8.1234663721610136377648814232088625 21.3269838443247117254486511228606105 1.2305547891069947841202747440547682 + 335 1 7 0.1527568014000000029550818680945667 8.1234663721306521466658523422665894 21.3269838456157394546153227565810084 25.1764720648352771092959301313385367 + 336 1 7 0.1527568014000000029550818680945667 18.2835599510212958307420194614678621 5.0800422934237152716718810552265495 1.2305547890707619895778179852641188 + 337 1 7 0.1527568014000000029550818680945667 1.2305548093251283958693420572672039 8.1234666201886813752253146958537400 5.0800430232485380699358756828587502 + 338 1 7 0.1527568014000000029550818680945667 25.1764712297716108935219381237402558 18.2835597877724005400068563176319003 21.3269838016725756801861280109733343 + 339 1 7 0.1527568014000000029550818680945667 1.2305548091296751866963177235447802 18.2835597883457232626369659556075931 21.3269838010998995514455600641667843 + 340 1 7 0.1527568014000000029550818680945667 25.1764712300543322953672031871974468 8.1234666209768970901450302335433662 5.0800430224609334217689138313289732 + 341 1 7 0.1527568014000000029550818680945667 25.1764712298965704917463881429284811 18.2835599523264420440682442858815193 5.0800428829041432976509895524941385 + 342 1 7 0.1527568014000000029550818680945667 1.2305548093595208847261801565764472 8.1234667846695103321508213412016630 21.3269836613121519519609137205407023 + 343 1 7 0.1527568014000000029550818680945667 25.1764712299123694094760139705613256 8.1234667855004651926265069050714374 21.3269836621424495604060211917385459 + 344 1 7 0.1527568014000000029550818680945667 1.2305548090829721008532260384527035 18.2835599529054704248665075283497572 5.0800428834825011037423792004119605 + 345 1 7 0.1527568014000000029550818680945667 5.0800447501318544141213351394981146 1.2305548158821781878913270702469163 8.1234702051540548239927375107072294 + 346 1 7 0.1527568014000000029550818680945667 21.3269812561375502468763443175703287 25.1764716303616218340266641462221742 18.2835566289172781750949070556089282 + 347 1 7 0.1527568014000000029550818680945667 21.3269812561999891897812631214037538 1.2305548156421328709342333240783773 18.2835566288200723761292465496808290 + 348 1 7 0.1527568014000000029550818680945667 5.0800447491239753006198043294716626 25.1764716303083702086951234377920628 8.1234702048374369809380368678830564 + 349 1 7 0.1527568014000000029550818680945667 5.0800446164042396546278723690193146 25.1764716304291695792016980703920126 18.2835567781084975536032288800925016 + 350 1 7 0.1527568014000000029550818680945667 21.3269811235125388293454307131469250 1.2305548157849168777744353064917959 8.1234703541073915999959353939630091 + 351 1 7 0.1527568014000000029550818680945667 21.3269811234640300767750886734575033 25.1764716302444888640366116305813193 8.1234703540241088859374940511770546 + 352 1 7 0.1527568014000000029550818680945667 5.0800446173962248153088694380130619 1.2305548157365484573944058865890838 18.2835567777759742114085383946076035 + 353 1 7 0.1527568014000000029550818680945667 5.0800484434481720796838999376632273 8.1234693038446419421916289138607681 25.1764721038813696907254779944196343 + 354 1 7 0.1527568014000000029550818680945667 21.3269775654580087120848475024104118 18.2835571230022146949067973764613271 1.2305547499882476536470221617491916 + 355 1 7 0.1527568014000000029550818680945667 21.3269775667131327168135612737387419 18.2835571229490980726950510870665312 25.1764721039650112288654781877994537 + 356 1 7 0.1527568014000000029550818680945667 5.0800484448162794848258272395469248 8.1234693038824037358835994382388890 1.2305547500776741198791341957985424 + 357 1 7 0.1527568014000000029550818680945667 5.0800483074245814663072451367042959 18.2835572720775658694947196636348963 1.2305547499989717419310863988357596 + 358 1 7 0.1527568014000000029550818680945667 21.3269774298730361294929025461897254 8.1234694529309372512670961441472173 25.1764721038875443070992332650348544 + 359 1 7 0.1527568014000000029550818680945667 21.3269774285756028575633536092936993 8.1234694529197408741083563654683530 1.2305547500393503312920984171796590 + 360 1 7 0.1527568014000000029550818680945667 5.0800483060541701263446157099679112 18.2835572720287125036975339753553271 25.1764721039599486118731874739751220 + 361 1 7 0.1527568014000000029550818680945667 8.1234663260082982105814153328537941 1.2305547460118095859371578626451083 21.3269797029151391143386717885732651 + 362 1 7 0.1527568014000000029550818680945667 18.2835600047053787875483976677060127 25.1764717001975633081656269496306777 5.0800468361130022287852625595405698 + 363 1 7 0.1527568014000000029550818680945667 18.2835600060640111053089640336111188 1.2305547460594801201239079091465101 5.0800468374513076952325718593783677 + 364 1 7 0.1527568014000000029550818680945667 8.1234663263394395471550524234771729 25.1764717000100652910532517125830054 21.3269797045156757064887642627581954 + 365 1 7 0.1527568014000000029550818680945667 18.2835598401287739989129477180540562 25.1764717000774496113990608137100935 21.3269798484736092802904749987646937 + 366 1 7 0.1527568014000000029550818680945667 8.1234661615275598478547181002795696 1.2305547459579990743350208504125476 5.0800469816567543901442149945069104 + 367 1 7 0.1527568014000000029550818680945667 8.1234661618438899211014359025284648 25.1764717001308504507051111431792378 5.0800469800710317258563009090721607 + 368 1 7 0.1527568014000000029550818680945667 18.2835598415031270747022063005715609 1.2305547461128862885004764393670484 21.3269798471195883848849916830658913 + 369 1 7 0.1527568014000000029550818680945667 1.2305547746802600883597733627539128 5.0800491445769422327316533483099192 18.2835566718044582046331925084814429 + 370 1 7 0.1527568014000000029550818680945667 25.1764712643219716881048952927812934 21.3269769983760397735750302672386169 8.1234704693002210973418186767958105 + 371 1 7 0.1527568014000000029550818680945667 1.2305547743122786652492095527122729 21.3269769975588978638825210509821773 8.1234704684825231879585771821439266 + 372 1 7 0.1527568014000000029550818680945667 25.1764712649626147822345956228673458 5.0800491440310393542745259765069932 18.2835566712580224191242450615391135 + 373 1 7 0.1527568014000000029550818680945667 25.1764712648394421989905822556465864 5.0800492767299694207849825033918023 8.1234703117067788014082907466217875 + 374 1 7 0.1527568014000000029550818680945667 1.2305547741593705346474507678067312 21.3269771302500146248348755761981010 18.2835565144543181759217986837029457 + 375 1 7 0.1527568014000000029550818680945667 25.1764712644278390030194714199751616 21.3269771310660516405732778366655111 18.2835565136377447004178975475952029 + 376 1 7 0.1527568014000000029550818680945667 1.2305547748244056727173756371485069 5.0800492773214962483052659081295133 8.1234703111147688048276904737576842 + 377 1 7 0.1527568014000000029550818680945667 8.1234700791120957319435547105967999 18.2835592280439982459938619285821915 14.4340676331327095738288335269317031 + 378 1 7 0.1527568014000000029550818680945667 18.2835561449390553434568573720753193 8.1234674003718154722264443989843130 11.9729591969889987979058787459507585 + 379 1 7 0.1527568014000000029550818680945667 18.2835561469672960299703845521435142 8.1234673983330001334479675278998911 14.4340676330866450882695062318816781 + 380 1 7 0.1527568014000000029550818680945667 8.1234700811642444051585698616690934 18.2835592260022181676504260394722223 11.9729591969345126045709548634476960 + 381 1 7 0.1527568014000000029550818680945667 18.2835560856033865206882182974368334 18.2835590819295070730277075199410319 11.9729591969257391781411570264026523 + 382 1 7 0.1527568014000000029550818680945667 8.1234700203008607388710515806451440 8.1234672542258863359165843576192856 14.4340676330501924695681736920960248 + 383 1 7 0.1527568014000000029550818680945667 8.1234700223832394527789801941253245 8.1234672563065881689681191346608102 11.9729591969975377452328757499344647 + 384 1 7 0.1527568014000000029550818680945667 18.2835560876409388697538815904408693 18.2835590839690240727577474899590015 14.4340676331463075854344424442388117 + 385 1 7 0.1527568014000000029550818680945667 5.0800467587774100763908791122958064 14.4340674105820863104554518940858543 21.3269824103176013352367590414360166 + 386 1 7 0.1527568014000000029550818680945667 21.3269790526968279209540924057364464 11.9729590021614349382161890389397740 5.0800442046448948119063970807474107 + 387 1 7 0.1527568014000000029550818680945667 21.3269790526054734414174163248389959 14.4340674106636779328027841984294355 5.0800442015968716447105180122889578 + 388 1 7 0.1527568014000000029550818680945667 5.0800467590507274451283592497929931 11.9729590023444210089564876398071647 21.3269824070374340863054385408759117 + 389 1 7 0.1527568014000000029550818680945667 5.0800468206247586522295023314654827 11.9729590022308638452841478283517063 5.0800443538371116147800421458669007 + 390 1 7 0.1527568014000000029550818680945667 21.3269791140840681009649415500462055 14.4340674104829957968831877224147320 21.3269825592633637256767542567104101 + 391 1 7 0.1527568014000000029550818680945667 21.3269791141909195175685454159975052 11.9729590022756013922844431363046169 21.3269825562308312782988650724291801 + 392 1 7 0.1527568014000000029550818680945667 5.0800468203397723954140019486658275 14.4340674107620561272824488696642220 5.0800443505452790304843802005052567 + 393 1 7 0.1527568014000000029550818680945667 5.0800440305369587434825007221661508 21.3269778095012050300738337682560086 11.9729592262242476863320916891098022 + 394 1 7 0.1527568014000000029550818680945667 21.3269817817583877683773607714101672 5.0800483969396159622533559740986675 14.4340675911214173510188629734329879 + 395 1 7 0.1527568014000000029550818680945667 21.3269817786478057541899033822119236 5.0800484000606571655112020380329341 11.9729592261769060002052356139756739 + 396 1 7 0.1527568014000000029550818680945667 5.0800440274041411825578506977763027 21.3269778126235358683970844140276313 14.4340675910804172588086657924577594 + 397 1 7 0.1527568014000000029550818680945667 5.0800440917554050557214395666960627 5.0800485460013824479119648458436131 14.4340675911393816477357177063822746 + 398 1 7 0.1527568014000000029550818680945667 21.3269818421154617738011438632383943 21.3269779585643668440297915367409587 11.9729592262467061658526290557347238 + 399 1 7 0.1527568014000000029550818680945667 21.3269818452339769976333627710118890 21.3269779616847436898297019070014358 14.4340675910554825378540044766850770 + 400 1 7 0.1527568014000000029550818680945667 5.0800440949178700122956797713413835 5.0800485491620497313647319970186800 11.9729592261832049615577489021234214 + 401 1 7 0.1527568014000000029550818680945667 8.1234679678826786641820945078507066 14.4340674098193613161811299505643547 8.1234678319500961407584327389486134 + 402 1 7 0.1527568014000000029550818680945667 18.2835581248168743684345827205106616 11.9729590092902942188857196015305817 18.2835589194050704975325061241164804 + 403 1 7 0.1527568014000000029550818680945667 18.2835581239965421218585106544196606 14.4340674100557286863022454781457782 18.2835589217760912106314208358526230 + 404 1 7 0.1527568014000000029550818680945667 8.1234679674536902638237734208814800 11.9729590093856668175931190489791334 8.1234678345799178345032487413845956 + 405 1 7 0.1527568014000000029550818680945667 18.2835581997841885026900854427367449 11.9729590094502089669958877493627369 8.1234679785396597395674689323641360 + 406 1 7 0.1527568014000000029550818680945667 8.1234680428147196806776264565996826 14.4340674099542010111463241628371179 18.2835590659791691336977237369865179 + 407 1 7 0.1527568014000000029550818680945667 8.1234680423760341483330194023437798 11.9729590092205189222340777632780373 18.2835590633590214793002814985811710 + 408 1 7 0.1527568014000000029550818680945667 18.2835581989807067770925641525536776 14.4340674099197290303209229023195803 8.1234679761517902818468428449705243 + 409 1 7 0.1527568014000000029550818680945667 14.4340671937266300517421768745407462 8.1234691122903122106890805298462510 18.2835611475922235058533260598778725 + 410 1 7 0.1527568014000000029550818680945667 11.9729588157896067457386379828676581 18.2835575448122682473695022054016590 8.1234659099391173242565855616703629 + 411 1 7 0.1527568014000000029550818680945667 14.4340671935036741757585332379676402 18.2835575443324422906243853503838181 8.1234659104187514344630471896380186 + 412 1 7 0.1527568014000000029550818680945667 11.9729588159131683511304800049401820 8.1234691120287649823694664519280195 18.2835611478535540186385333072394133 + 413 1 7 0.1527568014000000029550818680945667 11.9729588156179893587705009849742055 18.2835574698449541131139994831755757 18.2835609879965765856013604206964374 + 414 1 7 0.1527568014000000029550818680945667 14.4340671935872855158322636270895600 8.1234690373326721157809515716508031 8.1234657503173810511043484439142048 + 415 1 7 0.1527568014000000029550818680945667 11.9729588160773694482941209571436048 8.1234690371126259123002455453388393 8.1234657500975000488097066408954561 + 416 1 7 0.1527568014000000029550818680945667 14.4340671936249371754001913359388709 18.2835574693658848843824671348556876 18.2835609875176743344127316959202290 + 417 1 7 0.1527568014000000029550818680945667 14.4340672248044246117615330149419606 5.0800426926251791570621207938529551 5.0800474724727893161002612032461911 + 418 1 7 0.1527568014000000029550818680945667 11.9729587849237368857302499236539006 21.3269836429592629656326607801020145 21.3269794346884857816348812775686383 + 419 1 7 0.1527568014000000029550818680945667 14.4340672239817529032279708189889789 21.3269836432067130260747944703325629 21.3269794349360530816284153843298554 + 420 1 7 0.1527568014000000029550818680945667 11.9729587852454653074119050870649517 5.0800426931468978253292334557045251 5.0800474729946198948482560808770359 + 421 1 7 0.1527568014000000029550818680945667 11.9729587853397987373682553879916668 5.0800426315729367843232466839253902 21.3269792878931276902676472673192620 + 422 1 7 0.1527568014000000029550818680945667 14.4340672241701959421789069892838597 21.3269835817097721530899434583261609 5.0800473259318437158071901649236679 + 423 1 7 0.1527568014000000029550818680945667 11.9729587848212428724536948720924556 21.3269835814587374045459000626578927 5.0800473261830250137904840812552720 + 424 1 7 0.1527568014000000029550818680945667 14.4340672246009731338745041284710169 5.0800426310946580343852474470622838 21.3269792883715645359643531264737248 + +Bonds + + 1 2 229 232 + 2 1 145 49 + 3 1 145 88 + 4 3 289 145 + 5 4 289 193 + 6 4 289 232 + 7 7 49 9 + 8 7 17 88 + 9 3 183 327 + 10 2 270 271 + 11 2 273 276 + 12 4 326 270 + 13 4 273 326 + 14 4 271 327 + 15 4 276 327 + 16 5 414 270 + 17 5 271 415 + 18 3 326 182 + 19 5 339 195 + 20 5 216 360 + 21 6 5 37 + 22 6 37 15 + 23 6 19 37 + 24 6 27 37 + 25 7 91 27 + 26 7 15 103 + 27 7 106 19 + 28 7 114 27 + 29 7 121 27 + 30 7 5 136 + 31 1 163 91 + 32 1 106 163 + 33 1 103 175 + 34 1 114 175 + 35 1 177 121 + 36 1 177 136 + 37 7 7 47 + 38 7 11 72 + 39 2 190 191 + 40 2 213 216 + 41 1 47 143 + 42 1 143 72 + 43 3 143 287 + 44 4 191 287 + 45 4 287 216 + 46 7 50 10 + 47 7 18 87 + 48 1 146 50 + 49 1 146 87 + 50 3 290 146 + 51 4 290 194 + 52 4 290 231 + 53 2 230 231 + 54 5 422 278 + 55 5 279 423 + 56 1 153 57 + 57 1 153 78 + 58 3 297 153 + 59 4 297 201 + 60 4 297 222 + 61 7 57 17 + 62 7 1 78 + 63 3 324 180 + 64 2 265 268 + 65 2 277 280 + 66 4 321 265 + 67 4 321 280 + 68 4 268 324 + 69 4 324 277 + 70 5 409 265 + 71 5 268 412 + 72 3 321 177 + 73 5 398 254 + 74 5 255 399 + 75 5 366 222 + 76 5 329 185 + 77 7 42 2 + 78 7 10 67 + 79 2 210 211 + 80 1 138 42 + 81 1 138 67 + 82 3 282 138 + 83 4 282 186 + 84 4 282 211 + 85 7 5 45 + 86 7 70 15 + 87 1 45 141 + 88 1 141 70 + 89 3 141 285 + 90 4 189 285 + 91 4 285 214 + 92 3 181 325 + 93 2 269 272 + 94 2 274 275 + 95 4 269 325 + 96 4 274 325 + 97 4 272 328 + 98 4 275 328 + 99 5 269 413 + 100 5 272 416 + 101 3 184 328 + 102 3 175 319 + 103 2 246 247 + 104 2 258 259 + 105 4 318 246 + 106 4 259 318 + 107 4 247 319 + 108 4 258 319 + 109 5 402 258 + 110 5 403 259 + 111 3 318 174 + 112 3 167 311 + 113 3 310 166 + 114 2 238 239 + 115 2 253 256 + 116 4 310 238 + 117 4 253 310 + 118 4 239 311 + 119 4 311 256 + 120 5 382 238 + 121 5 239 383 + 122 5 245 389 + 123 5 248 392 + 124 5 354 210 + 125 5 197 341 + 126 6 4 36 + 127 6 36 14 + 128 6 36 24 + 129 6 36 30 + 130 7 94 30 + 131 7 100 14 + 132 7 109 24 + 133 7 30 119 + 134 7 124 30 + 135 7 4 133 + 136 1 166 94 + 137 1 109 166 + 138 1 100 172 + 139 1 172 119 + 140 1 124 180 + 141 1 180 133 + 142 5 191 335 + 143 5 364 220 + 144 5 369 225 + 145 5 208 352 + 146 5 390 246 + 147 5 247 391 + 148 5 394 250 + 149 5 395 251 + 150 5 350 206 + 151 5 229 373 + 152 7 15 55 + 153 7 19 84 + 154 1 55 151 + 155 1 84 151 + 156 3 151 295 + 157 4 199 295 + 158 4 228 295 + 159 2 198 199 + 160 2 225 228 + 161 2 194 195 + 162 1 147 51 + 163 1 147 86 + 164 3 291 147 + 165 4 291 195 + 166 4 291 230 + 167 7 51 11 + 168 7 21 86 + 169 5 417 273 + 170 5 276 420 + 171 6 7 39 + 172 6 11 39 + 173 6 21 39 + 174 6 25 39 + 175 7 89 25 + 176 7 97 11 + 177 7 108 21 + 178 7 25 118 + 179 7 25 125 + 180 7 130 7 + 181 1 161 89 + 182 1 161 108 + 183 1 169 97 + 184 1 169 118 + 185 1 125 181 + 186 1 130 181 + 187 2 218 219 + 188 1 158 62 + 189 1 75 158 + 190 3 302 158 + 191 4 302 206 + 192 4 219 302 + 193 7 62 22 + 194 7 75 8 + 195 5 371 227 + 196 5 348 204 + 197 5 393 249 + 198 5 396 252 + 199 5 342 198 + 200 5 353 209 + 201 5 363 219 + 202 5 192 336 + 203 5 347 203 + 204 5 372 228 + 205 3 316 172 + 206 2 241 244 + 207 2 262 263 + 208 4 313 241 + 209 4 313 262 + 210 4 316 244 + 211 4 316 263 + 212 5 406 262 + 213 5 263 407 + 214 3 313 169 + 215 7 23 63 + 216 7 74 3 + 217 1 63 159 + 218 1 74 159 + 219 3 159 303 + 220 4 207 303 + 221 4 218 303 + 222 2 206 207 + 223 5 207 351 + 224 5 370 226 + 225 7 20 60 + 226 7 6 79 + 227 1 60 156 + 228 1 156 79 + 229 3 300 156 + 230 4 300 204 + 231 4 300 223 + 232 2 201 204 + 233 2 222 223 + 234 5 346 202 + 235 5 231 375 + 236 3 173 317 + 237 2 245 248 + 238 2 257 260 + 239 4 245 317 + 240 4 260 317 + 241 4 248 320 + 242 4 257 320 + 243 5 401 257 + 244 5 260 404 + 245 3 176 320 + 246 7 21 61 + 247 7 76 7 + 248 1 61 157 + 249 1 76 157 + 250 3 157 301 + 251 4 205 301 + 252 4 220 301 + 253 2 217 220 + 254 5 224 368 + 255 5 189 333 + 256 5 355 211 + 257 5 338 194 + 258 5 253 397 + 259 5 256 400 + 260 3 165 309 + 261 3 168 312 + 262 2 237 240 + 263 2 254 255 + 264 4 237 309 + 265 4 309 254 + 266 4 240 312 + 267 4 255 312 + 268 5 237 381 + 269 5 240 384 + 270 5 361 217 + 271 5 332 188 + 272 2 202 203 + 273 2 221 224 + 274 1 155 59 + 275 1 155 80 + 276 3 299 155 + 277 4 299 203 + 278 4 299 224 + 279 7 59 19 + 280 7 5 80 + 281 5 232 376 + 282 5 345 201 + 283 2 197 200 + 284 2 226 227 + 285 1 56 152 + 286 1 83 152 + 287 3 152 296 + 288 4 200 296 + 289 4 227 296 + 290 7 16 56 + 291 7 83 20 + 292 3 306 162 + 293 3 307 163 + 294 2 234 235 + 295 2 250 251 + 296 4 306 234 + 297 4 306 251 + 298 4 307 235 + 299 4 250 307 + 300 5 378 234 + 301 5 379 235 + 302 7 4 44 + 303 7 65 14 + 304 2 185 188 + 305 1 44 140 + 306 1 65 140 + 307 3 284 140 + 308 4 284 188 + 309 4 209 284 + 310 5 200 344 + 311 5 213 357 + 312 5 331 187 + 313 5 362 218 + 314 3 322 178 + 315 2 266 267 + 316 2 278 279 + 317 4 322 266 + 318 4 322 279 + 319 4 323 267 + 320 4 323 278 + 321 5 410 266 + 322 5 411 267 + 323 3 323 179 + 324 6 33 1 + 325 6 33 9 + 326 6 33 17 + 327 6 33 31 + 328 7 31 95 + 329 7 9 101 + 330 7 17 112 + 331 7 116 31 + 332 7 31 127 + 333 7 1 132 + 334 1 95 167 + 335 1 167 112 + 336 1 101 173 + 337 1 116 173 + 338 1 127 183 + 339 1 132 183 + 340 5 418 274 + 341 5 419 275 + 342 5 277 421 + 343 5 280 424 + 344 5 374 230 + 345 5 205 349 + 346 2 189 192 + 347 2 214 215 + 348 7 8 48 + 349 7 12 71 + 350 1 48 144 + 351 1 71 144 + 352 3 144 288 + 353 4 192 288 + 354 4 215 288 + 355 2 209 212 + 356 7 41 1 + 357 7 9 68 + 358 1 137 41 + 359 1 137 68 + 360 3 281 137 + 361 4 281 185 + 362 4 281 212 + 363 5 358 214 + 364 5 199 343 + 365 5 385 241 + 366 5 388 244 + 367 3 314 170 + 368 2 242 243 + 369 2 261 264 + 370 4 314 242 + 371 4 314 261 + 372 4 315 243 + 373 4 315 264 + 374 5 261 405 + 375 5 264 408 + 376 3 315 171 + 377 6 8 40 + 378 6 12 40 + 379 6 22 40 + 380 6 26 40 + 381 7 90 26 + 382 7 98 12 + 383 7 107 22 + 384 7 26 117 + 385 7 26 126 + 386 7 129 8 + 387 1 162 90 + 388 1 162 107 + 389 1 170 98 + 390 1 170 117 + 391 1 182 126 + 392 1 129 182 + 393 6 35 3 + 394 6 35 13 + 395 6 35 23 + 396 6 35 29 + 397 7 29 93 + 398 7 99 13 + 399 7 110 23 + 400 7 29 120 + 401 7 123 29 + 402 7 3 134 + 403 1 93 165 + 404 1 165 110 + 405 1 171 99 + 406 1 171 120 + 407 1 179 123 + 408 1 179 134 + 409 3 308 164 + 410 3 305 161 + 411 2 233 236 + 412 2 249 252 + 413 4 305 233 + 414 4 305 252 + 415 4 308 236 + 416 4 249 308 + 417 5 377 233 + 418 5 380 236 + 419 7 12 52 + 420 7 85 22 + 421 1 52 148 + 422 1 148 85 + 423 3 292 148 + 424 4 292 196 + 425 4 292 229 + 426 2 193 196 + 427 2 205 208 + 428 1 64 160 + 429 1 73 160 + 430 3 160 304 + 431 4 208 304 + 432 4 217 304 + 433 7 24 64 + 434 7 73 4 + 435 7 46 6 + 436 7 69 16 + 437 1 142 46 + 438 1 69 142 + 439 3 286 142 + 440 4 286 190 + 441 4 213 286 + 442 2 186 187 + 443 7 43 3 + 444 7 66 13 + 445 1 139 43 + 446 1 66 139 + 447 3 283 139 + 448 4 283 187 + 449 4 210 283 + 450 5 330 186 + 451 5 221 365 + 452 7 13 53 + 453 7 82 23 + 454 1 53 149 + 455 1 82 149 + 456 3 149 293 + 457 4 197 293 + 458 4 226 293 + 459 6 38 6 + 460 6 38 16 + 461 6 20 38 + 462 6 28 38 + 463 7 28 92 + 464 7 16 104 + 465 7 105 20 + 466 7 113 28 + 467 7 122 28 + 468 7 6 135 + 469 1 92 164 + 470 1 105 164 + 471 1 104 176 + 472 1 113 176 + 473 1 178 122 + 474 1 178 135 + 475 5 215 359 + 476 5 340 196 + 477 5 334 190 + 478 5 223 367 + 479 5 337 193 + 480 5 356 212 + 481 5 386 242 + 482 5 387 243 + 483 1 150 54 + 484 1 81 150 + 485 3 294 150 + 486 4 294 198 + 487 4 225 294 + 488 7 54 14 + 489 7 81 24 + 490 7 58 18 + 491 7 2 77 + 492 1 154 58 + 493 1 154 77 + 494 3 298 154 + 495 4 298 202 + 496 4 298 221 + 497 6 34 2 + 498 6 34 10 + 499 6 34 18 + 500 6 34 32 + 501 7 32 96 + 502 7 10 102 + 503 7 18 111 + 504 7 115 32 + 505 7 32 128 + 506 7 2 131 + 507 1 96 168 + 508 1 111 168 + 509 1 174 102 + 510 1 115 174 + 511 1 128 184 + 512 1 131 184 + +Angles + + 1 13 41 1 33 + 2 13 132 1 33 + 3 15 132 1 41 + 4 15 132 1 78 + 5 13 78 1 33 + 6 15 78 1 41 + 7 13 42 2 34 + 8 15 131 2 42 + 9 15 131 2 77 + 10 13 131 2 34 + 11 15 77 2 42 + 12 13 77 2 34 + 13 13 74 3 35 + 14 15 74 3 43 + 15 13 43 3 35 + 16 15 134 3 74 + 17 13 134 3 35 + 18 15 134 3 43 + 19 15 73 4 44 + 20 13 73 4 36 + 21 13 44 4 36 + 22 15 133 4 73 + 23 15 133 4 44 + 24 13 133 4 36 + 25 13 45 5 37 + 26 15 80 5 45 + 27 13 80 5 37 + 28 15 136 5 45 + 29 15 136 5 80 + 30 13 136 5 37 + 31 15 135 6 46 + 32 15 135 6 79 + 33 13 135 6 38 + 34 13 46 6 38 + 35 15 79 6 46 + 36 13 79 6 38 + 37 15 130 7 76 + 38 13 130 7 39 + 39 15 130 7 47 + 40 13 76 7 39 + 41 15 76 7 47 + 42 13 47 7 39 + 43 15 129 8 75 + 44 13 129 8 40 + 45 15 129 8 48 + 46 13 75 8 40 + 47 15 75 8 48 + 48 13 48 8 40 + 49 13 49 9 33 + 50 15 68 9 49 + 51 13 68 9 33 + 52 15 101 9 49 + 53 13 101 9 33 + 54 15 101 9 68 + 55 13 50 10 34 + 56 15 67 10 50 + 57 13 67 10 34 + 58 15 102 10 50 + 59 15 102 10 67 + 60 13 102 10 34 + 61 15 97 11 51 + 62 13 97 11 39 + 63 15 97 11 72 + 64 13 51 11 39 + 65 15 72 11 51 + 66 13 72 11 39 + 67 15 98 12 52 + 68 15 98 12 71 + 69 13 98 12 40 + 70 13 52 12 40 + 71 15 71 12 52 + 72 13 71 12 40 + 73 13 66 13 35 + 74 15 66 13 53 + 75 13 53 13 35 + 76 15 99 13 66 + 77 13 99 13 35 + 78 15 99 13 53 + 79 15 100 14 65 + 80 13 100 14 36 + 81 15 100 14 54 + 82 13 65 14 36 + 83 15 65 14 54 + 84 13 54 14 36 + 85 13 55 15 37 + 86 15 70 15 55 + 87 13 70 15 37 + 88 15 103 15 55 + 89 13 103 15 37 + 90 15 103 15 70 + 91 15 104 16 69 + 92 13 104 16 38 + 93 15 104 16 56 + 94 13 69 16 38 + 95 15 69 16 56 + 96 13 56 16 38 + 97 13 57 17 33 + 98 15 112 17 57 + 99 13 112 17 33 + 100 15 112 17 88 + 101 15 88 17 57 + 102 13 88 17 33 + 103 13 58 18 34 + 104 15 111 18 58 + 105 15 111 18 87 + 106 13 111 18 34 + 107 15 87 18 58 + 108 13 87 18 34 + 109 15 106 19 59 + 110 15 106 19 84 + 111 13 106 19 37 + 112 13 59 19 37 + 113 15 84 19 59 + 114 13 84 19 37 + 115 15 105 20 83 + 116 15 105 20 60 + 117 13 105 20 38 + 118 15 83 20 60 + 119 13 83 20 38 + 120 13 60 20 38 + 121 15 108 21 61 + 122 15 108 21 86 + 123 13 108 21 39 + 124 13 61 21 39 + 125 15 86 21 61 + 126 13 86 21 39 + 127 15 107 22 85 + 128 15 107 22 62 + 129 13 107 22 40 + 130 15 85 22 62 + 131 13 85 22 40 + 132 13 62 22 40 + 133 13 82 23 35 + 134 15 82 23 63 + 135 15 110 23 82 + 136 13 110 23 35 + 137 15 110 23 63 + 138 13 63 23 35 + 139 13 81 24 36 + 140 15 81 24 64 + 141 15 109 24 81 + 142 13 109 24 36 + 143 15 109 24 64 + 144 13 64 24 36 + 145 13 89 25 39 + 146 15 125 25 89 + 147 15 125 25 118 + 148 13 125 25 39 + 149 15 118 25 89 + 150 13 118 25 39 + 151 13 90 26 40 + 152 15 117 26 90 + 153 13 117 26 40 + 154 15 126 26 90 + 155 15 126 26 117 + 156 13 126 26 40 + 157 15 121 27 114 + 158 15 121 27 91 + 159 13 121 27 37 + 160 15 114 27 91 + 161 13 114 27 37 + 162 13 91 27 37 + 163 15 113 28 92 + 164 13 113 28 38 + 165 15 122 28 113 + 166 15 122 28 92 + 167 13 122 28 38 + 168 13 92 28 38 + 169 13 93 29 35 + 170 13 123 29 35 + 171 15 123 29 93 + 172 15 123 29 120 + 173 13 120 29 35 + 174 15 120 29 93 + 175 13 124 30 36 + 176 15 124 30 94 + 177 15 124 30 119 + 178 13 94 30 36 + 179 13 119 30 36 + 180 15 119 30 94 + 181 13 116 31 33 + 182 15 116 31 95 + 183 13 127 31 33 + 184 15 127 31 116 + 185 15 127 31 95 + 186 13 95 31 33 + 187 13 115 32 34 + 188 15 115 32 96 + 189 13 128 32 34 + 190 15 128 32 115 + 191 15 128 32 96 + 192 13 96 32 34 + 193 16 9 33 1 + 194 16 31 33 1 + 195 16 31 33 9 + 196 16 31 33 17 + 197 16 17 33 1 + 198 16 17 33 9 + 199 16 32 34 2 + 200 16 32 34 18 + 201 16 32 34 10 + 202 16 18 34 2 + 203 16 18 34 10 + 204 16 10 34 2 + 205 16 29 35 3 + 206 16 29 35 13 + 207 16 29 35 23 + 208 16 13 35 3 + 209 16 23 35 3 + 210 16 23 35 13 + 211 16 30 36 4 + 212 16 30 36 14 + 213 16 30 36 24 + 214 16 14 36 4 + 215 16 24 36 4 + 216 16 24 36 14 + 217 16 19 37 5 + 218 16 19 37 15 + 219 16 27 37 19 + 220 16 27 37 5 + 221 16 27 37 15 + 222 16 15 37 5 + 223 16 28 38 20 + 224 16 28 38 6 + 225 16 28 38 16 + 226 16 20 38 6 + 227 16 20 38 16 + 228 16 16 38 6 + 229 16 25 39 11 + 230 16 25 39 21 + 231 16 25 39 7 + 232 16 11 39 7 + 233 16 21 39 11 + 234 16 21 39 7 + 235 16 26 40 12 + 236 16 26 40 22 + 237 16 26 40 8 + 238 16 12 40 8 + 239 16 22 40 12 + 240 16 22 40 8 + 241 17 137 41 1 + 242 17 138 42 2 + 243 17 139 43 3 + 244 17 140 44 4 + 245 17 141 45 5 + 246 17 142 46 6 + 247 17 143 47 7 + 248 17 144 48 8 + 249 17 145 49 9 + 250 17 146 50 10 + 251 17 147 51 11 + 252 17 148 52 12 + 253 17 149 53 13 + 254 17 150 54 14 + 255 17 151 55 15 + 256 17 152 56 16 + 257 17 153 57 17 + 258 17 154 58 18 + 259 17 155 59 19 + 260 17 156 60 20 + 261 17 157 61 21 + 262 17 158 62 22 + 263 17 159 63 23 + 264 17 160 64 24 + 265 17 140 65 14 + 266 17 139 66 13 + 267 17 138 67 10 + 268 17 137 68 9 + 269 17 142 69 16 + 270 17 141 70 15 + 271 17 144 71 12 + 272 17 143 72 11 + 273 17 160 73 4 + 274 17 159 74 3 + 275 17 158 75 8 + 276 17 157 76 7 + 277 17 154 77 2 + 278 17 153 78 1 + 279 17 156 79 6 + 280 17 155 80 5 + 281 17 150 81 24 + 282 17 149 82 23 + 283 17 152 83 20 + 284 17 151 84 19 + 285 17 148 85 22 + 286 17 147 86 21 + 287 17 146 87 18 + 288 17 145 88 17 + 289 17 161 89 25 + 290 17 162 90 26 + 291 17 163 91 27 + 292 17 164 92 28 + 293 17 165 93 29 + 294 17 166 94 30 + 295 17 167 95 31 + 296 17 168 96 32 + 297 17 169 97 11 + 298 17 170 98 12 + 299 17 171 99 13 + 300 17 172 100 14 + 301 17 173 101 9 + 302 17 174 102 10 + 303 17 175 103 15 + 304 17 176 104 16 + 305 17 164 105 20 + 306 17 163 106 19 + 307 17 162 107 22 + 308 17 161 108 21 + 309 17 166 109 24 + 310 17 165 110 23 + 311 17 168 111 18 + 312 17 167 112 17 + 313 17 176 113 28 + 314 17 175 114 27 + 315 17 174 115 32 + 316 17 173 116 31 + 317 17 170 117 26 + 318 17 169 118 25 + 319 17 172 119 30 + 320 17 171 120 29 + 321 17 177 121 27 + 322 17 178 122 28 + 323 17 179 123 29 + 324 17 180 124 30 + 325 17 181 125 25 + 326 17 182 126 26 + 327 17 183 127 31 + 328 17 184 128 32 + 329 17 182 129 8 + 330 17 181 130 7 + 331 17 184 131 2 + 332 17 183 132 1 + 333 17 180 133 4 + 334 17 179 134 3 + 335 17 178 135 6 + 336 17 177 136 5 + 337 3 281 137 41 + 338 3 281 137 68 + 339 1 68 137 41 + 340 1 67 138 42 + 341 3 282 138 42 + 342 3 282 138 67 + 343 1 66 139 43 + 344 3 283 139 66 + 345 3 283 139 43 + 346 1 65 140 44 + 347 3 284 140 65 + 348 3 284 140 44 + 349 3 285 141 45 + 350 3 285 141 70 + 351 1 70 141 45 + 352 1 69 142 46 + 353 3 286 142 69 + 354 3 286 142 46 + 355 3 287 143 47 + 356 3 287 143 72 + 357 1 72 143 47 + 358 3 288 144 71 + 359 3 288 144 48 + 360 1 71 144 48 + 361 3 289 145 49 + 362 3 289 145 88 + 363 1 88 145 49 + 364 1 87 146 50 + 365 3 290 146 50 + 366 3 290 146 87 + 367 3 291 147 51 + 368 3 291 147 86 + 369 1 86 147 51 + 370 3 292 148 52 + 371 3 292 148 85 + 372 1 85 148 52 + 373 1 82 149 53 + 374 3 293 149 82 + 375 3 293 149 53 + 376 1 81 150 54 + 377 3 294 150 81 + 378 3 294 150 54 + 379 1 84 151 55 + 380 3 295 151 84 + 381 3 295 151 55 + 382 1 83 152 56 + 383 3 296 152 83 + 384 3 296 152 56 + 385 3 297 153 57 + 386 3 297 153 78 + 387 1 78 153 57 + 388 1 77 154 58 + 389 3 298 154 58 + 390 3 298 154 77 + 391 3 299 155 59 + 392 3 299 155 80 + 393 1 80 155 59 + 394 3 300 156 60 + 395 3 300 156 79 + 396 1 79 156 60 + 397 3 301 157 76 + 398 3 301 157 61 + 399 1 76 157 61 + 400 1 75 158 62 + 401 3 302 158 75 + 402 3 302 158 62 + 403 1 74 159 63 + 404 3 303 159 74 + 405 3 303 159 63 + 406 1 73 160 64 + 407 3 304 160 73 + 408 3 304 160 64 + 409 3 305 161 89 + 410 3 305 161 108 + 411 1 108 161 89 + 412 3 306 162 107 + 413 3 306 162 90 + 414 1 107 162 90 + 415 1 106 163 91 + 416 3 307 163 106 + 417 3 307 163 91 + 418 1 105 164 92 + 419 3 308 164 105 + 420 3 308 164 92 + 421 3 309 165 93 + 422 3 309 165 110 + 423 1 110 165 93 + 424 1 109 166 94 + 425 3 310 166 109 + 426 3 310 166 94 + 427 3 311 167 95 + 428 3 311 167 112 + 429 1 112 167 95 + 430 1 111 168 96 + 431 3 312 168 96 + 432 3 312 168 111 + 433 3 313 169 97 + 434 3 313 169 118 + 435 1 118 169 97 + 436 3 314 170 117 + 437 3 314 170 98 + 438 1 117 170 98 + 439 3 315 171 99 + 440 3 315 171 120 + 441 1 120 171 99 + 442 3 316 172 100 + 443 3 316 172 119 + 444 1 119 172 100 + 445 1 116 173 101 + 446 3 317 173 101 + 447 3 317 173 116 + 448 1 115 174 102 + 449 3 318 174 115 + 450 3 318 174 102 + 451 1 114 175 103 + 452 3 319 175 114 + 453 3 319 175 103 + 454 1 113 176 104 + 455 3 320 176 113 + 456 3 320 176 104 + 457 3 321 177 121 + 458 3 321 177 136 + 459 1 136 177 121 + 460 3 322 178 135 + 461 3 322 178 122 + 462 1 135 178 122 + 463 3 323 179 123 + 464 3 323 179 134 + 465 1 134 179 123 + 466 3 324 180 124 + 467 3 324 180 133 + 468 1 133 180 124 + 469 3 325 181 125 + 470 3 325 181 130 + 471 1 130 181 125 + 472 1 129 182 126 + 473 3 326 182 129 + 474 3 326 182 126 + 475 1 132 183 127 + 476 3 327 183 132 + 477 3 327 183 127 + 478 1 131 184 128 + 479 3 328 184 131 + 480 3 328 184 128 + 481 6 329 185 281 + 482 9 329 185 188 + 483 4 281 185 188 + 484 4 282 186 187 + 485 6 330 186 282 + 486 9 330 186 187 + 487 9 331 187 186 + 488 6 331 187 283 + 489 4 283 187 186 + 490 4 284 188 185 + 491 9 332 188 185 + 492 6 332 188 284 + 493 6 333 189 285 + 494 9 333 189 192 + 495 4 285 189 192 + 496 4 286 190 191 + 497 6 334 190 286 + 498 9 334 190 191 + 499 9 335 191 190 + 500 6 335 191 287 + 501 4 287 191 190 + 502 4 288 192 189 + 503 6 336 192 288 + 504 9 336 192 189 + 505 4 289 193 196 + 506 6 337 193 289 + 507 9 337 193 196 + 508 4 290 194 195 + 509 6 338 194 290 + 510 9 338 194 195 + 511 9 339 195 194 + 512 6 339 195 291 + 513 4 291 195 194 + 514 9 340 196 193 + 515 6 340 196 292 + 516 4 292 196 193 + 517 4 293 197 200 + 518 6 341 197 293 + 519 9 341 197 200 + 520 9 342 198 199 + 521 6 342 198 294 + 522 4 294 198 199 + 523 9 343 199 198 + 524 6 343 199 295 + 525 4 295 199 198 + 526 9 344 200 197 + 527 6 344 200 296 + 528 4 296 200 197 + 529 4 297 201 204 + 530 6 345 201 297 + 531 9 345 201 204 + 532 9 346 202 203 + 533 6 346 202 298 + 534 4 298 202 203 + 535 9 347 203 202 + 536 6 347 203 299 + 537 4 299 203 202 + 538 4 300 204 201 + 539 9 348 204 201 + 540 6 348 204 300 + 541 6 349 205 301 + 542 9 349 205 208 + 543 4 301 205 208 + 544 9 350 206 207 + 545 6 350 206 302 + 546 4 302 206 207 + 547 9 351 207 206 + 548 6 351 207 303 + 549 4 303 207 206 + 550 4 304 208 205 + 551 6 352 208 304 + 552 9 352 208 205 + 553 6 353 209 284 + 554 9 353 209 212 + 555 4 284 209 212 + 556 9 354 210 211 + 557 6 354 210 283 + 558 4 283 210 211 + 559 9 355 211 210 + 560 6 355 211 282 + 561 4 282 211 210 + 562 4 281 212 209 + 563 9 356 212 209 + 564 6 356 212 281 + 565 6 357 213 286 + 566 9 357 213 216 + 567 4 286 213 216 + 568 4 285 214 215 + 569 6 358 214 285 + 570 9 358 214 215 + 571 9 359 215 214 + 572 6 359 215 288 + 573 4 288 215 214 + 574 4 287 216 213 + 575 9 360 216 213 + 576 6 360 216 287 + 577 9 361 217 220 + 578 6 361 217 304 + 579 4 304 217 220 + 580 9 362 218 219 + 581 6 362 218 303 + 582 4 303 218 219 + 583 9 363 219 218 + 584 6 363 219 302 + 585 4 302 219 218 + 586 9 364 220 217 + 587 6 364 220 301 + 588 4 301 220 217 + 589 4 298 221 224 + 590 6 365 221 298 + 591 9 365 221 224 + 592 4 297 222 223 + 593 6 366 222 297 + 594 9 366 222 223 + 595 4 300 223 222 + 596 6 367 223 300 + 597 9 367 223 222 + 598 4 299 224 221 + 599 6 368 224 299 + 600 9 368 224 221 + 601 9 369 225 228 + 602 6 369 225 294 + 603 4 294 225 228 + 604 9 370 226 227 + 605 6 370 226 293 + 606 4 293 226 227 + 607 9 371 227 226 + 608 6 371 227 296 + 609 4 296 227 226 + 610 9 372 228 225 + 611 6 372 228 295 + 612 4 295 228 225 + 613 4 292 229 232 + 614 6 373 229 292 + 615 9 373 229 232 + 616 4 291 230 231 + 617 6 374 230 291 + 618 9 374 230 231 + 619 4 290 231 230 + 620 6 375 231 290 + 621 9 375 231 230 + 622 4 289 232 229 + 623 6 376 232 289 + 624 9 376 232 229 + 625 4 305 233 236 + 626 6 377 233 305 + 627 9 377 233 236 + 628 4 306 234 235 + 629 6 378 234 306 + 630 9 378 234 235 + 631 4 307 235 234 + 632 9 379 235 234 + 633 6 379 235 307 + 634 9 380 236 233 + 635 6 380 236 308 + 636 4 308 236 233 + 637 6 381 237 309 + 638 9 381 237 240 + 639 4 309 237 240 + 640 4 310 238 239 + 641 6 382 238 310 + 642 9 382 238 239 + 643 9 383 239 238 + 644 6 383 239 311 + 645 4 311 239 238 + 646 9 384 240 237 + 647 6 384 240 312 + 648 4 312 240 237 + 649 4 313 241 244 + 650 6 385 241 313 + 651 9 385 241 244 + 652 4 314 242 243 + 653 6 386 242 314 + 654 9 386 242 243 + 655 4 315 243 242 + 656 9 387 243 242 + 657 6 387 243 315 + 658 4 316 244 241 + 659 9 388 244 241 + 660 6 388 244 316 + 661 4 317 245 248 + 662 6 389 245 317 + 663 9 389 245 248 + 664 4 318 246 247 + 665 6 390 246 318 + 666 9 390 246 247 + 667 4 319 247 246 + 668 9 391 247 246 + 669 6 391 247 319 + 670 4 320 248 245 + 671 6 392 248 320 + 672 9 392 248 245 + 673 6 393 249 308 + 674 9 393 249 252 + 675 4 308 249 252 + 676 9 394 250 251 + 677 6 394 250 307 + 678 4 307 250 251 + 679 9 395 251 250 + 680 6 395 251 306 + 681 4 306 251 250 + 682 4 305 252 249 + 683 9 396 252 249 + 684 6 396 252 305 + 685 6 397 253 310 + 686 9 397 253 256 + 687 4 310 253 256 + 688 4 309 254 255 + 689 6 398 254 309 + 690 9 398 254 255 + 691 9 399 255 254 + 692 6 399 255 312 + 693 4 312 255 254 + 694 4 311 256 253 + 695 9 400 256 253 + 696 6 400 256 311 + 697 9 401 257 260 + 698 6 401 257 320 + 699 4 320 257 260 + 700 9 402 258 259 + 701 6 402 258 319 + 702 4 319 258 259 + 703 9 403 259 258 + 704 6 403 259 318 + 705 4 318 259 258 + 706 9 404 260 257 + 707 6 404 260 317 + 708 4 317 260 257 + 709 4 314 261 264 + 710 6 405 261 314 + 711 9 405 261 264 + 712 4 313 262 263 + 713 6 406 262 313 + 714 9 406 262 263 + 715 4 316 263 262 + 716 6 407 263 316 + 717 9 407 263 262 + 718 4 315 264 261 + 719 6 408 264 315 + 720 9 408 264 261 + 721 4 321 265 268 + 722 6 409 265 321 + 723 9 409 265 268 + 724 4 322 266 267 + 725 6 410 266 322 + 726 9 410 266 267 + 727 4 323 267 266 + 728 9 411 267 266 + 729 6 411 267 323 + 730 4 324 268 265 + 731 9 412 268 265 + 732 6 412 268 324 + 733 6 413 269 325 + 734 9 413 269 272 + 735 4 325 269 272 + 736 4 326 270 271 + 737 6 414 270 326 + 738 9 414 270 271 + 739 4 327 271 270 + 740 9 415 271 270 + 741 6 415 271 327 + 742 9 416 272 269 + 743 6 416 272 328 + 744 4 328 272 269 + 745 9 417 273 276 + 746 6 417 273 326 + 747 4 326 273 276 + 748 9 418 274 275 + 749 6 418 274 325 + 750 4 325 274 275 + 751 9 419 275 274 + 752 6 419 275 328 + 753 4 328 275 274 + 754 9 420 276 273 + 755 6 420 276 327 + 756 4 327 276 273 + 757 4 324 277 280 + 758 6 421 277 324 + 759 9 421 277 280 + 760 4 323 278 279 + 761 6 422 278 323 + 762 9 422 278 279 + 763 4 322 279 278 + 764 6 423 279 322 + 765 9 423 279 278 + 766 4 321 280 277 + 767 6 424 280 321 + 768 9 424 280 277 + 769 11 185 281 137 + 770 11 212 281 137 + 771 12 212 281 185 + 772 11 211 282 138 + 773 12 211 282 186 + 774 11 186 282 138 + 775 11 210 283 139 + 776 12 210 283 187 + 777 11 187 283 139 + 778 11 209 284 140 + 779 12 209 284 188 + 780 11 188 284 140 + 781 11 189 285 141 + 782 12 214 285 189 + 783 11 214 285 141 + 784 11 213 286 142 + 785 12 213 286 190 + 786 11 190 286 142 + 787 11 191 287 143 + 788 12 216 287 191 + 789 11 216 287 143 + 790 11 192 288 144 + 791 12 215 288 192 + 792 11 215 288 144 + 793 11 193 289 145 + 794 11 232 289 145 + 795 12 232 289 193 + 796 11 231 290 146 + 797 12 231 290 194 + 798 11 194 290 146 + 799 11 195 291 147 + 800 11 230 291 147 + 801 12 230 291 195 + 802 11 229 292 148 + 803 12 229 292 196 + 804 11 196 292 148 + 805 11 197 293 149 + 806 12 226 293 197 + 807 11 226 293 149 + 808 11 225 294 150 + 809 12 225 294 198 + 810 11 198 294 150 + 811 12 228 295 199 + 812 11 228 295 151 + 813 11 199 295 151 + 814 12 227 296 200 + 815 11 227 296 152 + 816 11 200 296 152 + 817 11 201 297 153 + 818 11 222 297 153 + 819 12 222 297 201 + 820 11 221 298 154 + 821 12 221 298 202 + 822 11 202 298 154 + 823 11 203 299 155 + 824 11 224 299 155 + 825 12 224 299 203 + 826 11 223 300 156 + 827 12 223 300 204 + 828 11 204 300 156 + 829 11 205 301 157 + 830 12 220 301 205 + 831 11 220 301 157 + 832 11 219 302 158 + 833 12 219 302 206 + 834 11 206 302 158 + 835 12 218 303 207 + 836 11 218 303 159 + 837 11 207 303 159 + 838 12 217 304 208 + 839 11 217 304 160 + 840 11 208 304 160 + 841 11 233 305 161 + 842 11 252 305 161 + 843 12 252 305 233 + 844 11 251 306 162 + 845 12 251 306 234 + 846 11 234 306 162 + 847 11 250 307 163 + 848 12 250 307 235 + 849 11 235 307 163 + 850 11 249 308 164 + 851 12 249 308 236 + 852 11 236 308 164 + 853 11 237 309 165 + 854 12 254 309 237 + 855 11 254 309 165 + 856 11 253 310 166 + 857 12 253 310 238 + 858 11 238 310 166 + 859 11 239 311 167 + 860 12 256 311 239 + 861 11 256 311 167 + 862 11 240 312 168 + 863 12 255 312 240 + 864 11 255 312 168 + 865 11 241 313 169 + 866 12 262 313 241 + 867 11 262 313 169 + 868 11 261 314 170 + 869 12 261 314 242 + 870 11 242 314 170 + 871 11 243 315 171 + 872 12 264 315 243 + 873 11 264 315 171 + 874 11 263 316 172 + 875 12 263 316 244 + 876 11 244 316 172 + 877 11 245 317 173 + 878 12 260 317 245 + 879 11 260 317 173 + 880 12 259 318 246 + 881 11 259 318 174 + 882 11 246 318 174 + 883 12 258 319 247 + 884 11 258 319 175 + 885 11 247 319 175 + 886 11 257 320 176 + 887 12 257 320 248 + 888 11 248 320 176 + 889 11 265 321 177 + 890 12 280 321 265 + 891 11 280 321 177 + 892 11 279 322 178 + 893 12 279 322 266 + 894 11 266 322 178 + 895 11 267 323 179 + 896 12 278 323 267 + 897 11 278 323 179 + 898 11 268 324 180 + 899 12 277 324 268 + 900 11 277 324 180 + 901 11 269 325 181 + 902 12 274 325 269 + 903 11 274 325 181 + 904 12 273 326 270 + 905 11 273 326 182 + 906 11 270 326 182 + 907 12 276 327 271 + 908 11 276 327 183 + 909 11 271 327 183 + 910 11 275 328 184 + 911 12 275 328 272 + 912 11 272 328 184 + 913 27 41 1 33 + 914 27 132 1 33 + 915 28 132 1 41 + 916 28 132 1 78 + 917 27 78 1 33 + 918 28 78 1 41 + 919 27 42 2 34 + 920 28 131 2 42 + 921 28 131 2 77 + 922 27 131 2 34 + 923 28 77 2 42 + 924 27 77 2 34 + 925 27 74 3 35 + 926 28 74 3 43 + 927 27 43 3 35 + 928 28 134 3 74 + 929 27 134 3 35 + 930 28 134 3 43 + 931 28 73 4 44 + 932 27 73 4 36 + 933 27 44 4 36 + 934 28 133 4 73 + 935 28 133 4 44 + 936 27 133 4 36 + 937 27 45 5 37 + 938 28 80 5 45 + 939 27 80 5 37 + 940 28 136 5 45 + 941 28 136 5 80 + 942 27 136 5 37 + 943 28 135 6 46 + 944 28 135 6 79 + 945 27 135 6 38 + 946 27 46 6 38 + 947 28 79 6 46 + 948 27 79 6 38 + 949 28 130 7 76 + 950 27 130 7 39 + 951 28 130 7 47 + 952 27 76 7 39 + 953 28 76 7 47 + 954 27 47 7 39 + 955 28 129 8 75 + 956 27 129 8 40 + 957 28 129 8 48 + 958 27 75 8 40 + 959 28 75 8 48 + 960 27 48 8 40 + 961 27 49 9 33 + 962 28 68 9 49 + 963 27 68 9 33 + 964 28 101 9 49 + 965 27 101 9 33 + 966 28 101 9 68 + 967 27 50 10 34 + 968 28 67 10 50 + 969 27 67 10 34 + 970 28 102 10 50 + 971 28 102 10 67 + 972 27 102 10 34 + 973 28 97 11 51 + 974 27 97 11 39 + 975 28 97 11 72 + 976 27 51 11 39 + 977 28 72 11 51 + 978 27 72 11 39 + 979 28 98 12 52 + 980 28 98 12 71 + 981 27 98 12 40 + 982 27 52 12 40 + 983 28 71 12 52 + 984 27 71 12 40 + 985 27 66 13 35 + 986 28 66 13 53 + 987 27 53 13 35 + 988 28 99 13 66 + 989 27 99 13 35 + 990 28 99 13 53 + 991 28 100 14 65 + 992 27 100 14 36 + 993 28 100 14 54 + 994 27 65 14 36 + 995 28 65 14 54 + 996 27 54 14 36 + 997 27 55 15 37 + 998 28 70 15 55 + 999 27 70 15 37 + 1000 28 103 15 55 + 1001 27 103 15 37 + 1002 28 103 15 70 + 1003 28 104 16 69 + 1004 27 104 16 38 + 1005 28 104 16 56 + 1006 27 69 16 38 + 1007 28 69 16 56 + 1008 27 56 16 38 + 1009 27 57 17 33 + 1010 28 112 17 57 + 1011 27 112 17 33 + 1012 28 112 17 88 + 1013 28 88 17 57 + 1014 27 88 17 33 + 1015 27 58 18 34 + 1016 28 111 18 58 + 1017 28 111 18 87 + 1018 27 111 18 34 + 1019 28 87 18 58 + 1020 27 87 18 34 + 1021 28 106 19 59 + 1022 28 106 19 84 + 1023 27 106 19 37 + 1024 27 59 19 37 + 1025 28 84 19 59 + 1026 27 84 19 37 + 1027 28 105 20 83 + 1028 28 105 20 60 + 1029 27 105 20 38 + 1030 28 83 20 60 + 1031 27 83 20 38 + 1032 27 60 20 38 + 1033 28 108 21 61 + 1034 28 108 21 86 + 1035 27 108 21 39 + 1036 27 61 21 39 + 1037 28 86 21 61 + 1038 27 86 21 39 + 1039 28 107 22 85 + 1040 28 107 22 62 + 1041 27 107 22 40 + 1042 28 85 22 62 + 1043 27 85 22 40 + 1044 27 62 22 40 + 1045 27 82 23 35 + 1046 28 82 23 63 + 1047 28 110 23 82 + 1048 27 110 23 35 + 1049 28 110 23 63 + 1050 27 63 23 35 + 1051 27 81 24 36 + 1052 28 81 24 64 + 1053 28 109 24 81 + 1054 27 109 24 36 + 1055 28 109 24 64 + 1056 27 64 24 36 + 1057 27 89 25 39 + 1058 28 125 25 89 + 1059 28 125 25 118 + 1060 27 125 25 39 + 1061 28 118 25 89 + 1062 27 118 25 39 + 1063 27 90 26 40 + 1064 28 117 26 90 + 1065 27 117 26 40 + 1066 28 126 26 90 + 1067 28 126 26 117 + 1068 27 126 26 40 + 1069 28 121 27 114 + 1070 28 121 27 91 + 1071 27 121 27 37 + 1072 28 114 27 91 + 1073 27 114 27 37 + 1074 27 91 27 37 + 1075 28 113 28 92 + 1076 27 113 28 38 + 1077 28 122 28 113 + 1078 28 122 28 92 + 1079 27 122 28 38 + 1080 27 92 28 38 + 1081 27 93 29 35 + 1082 27 123 29 35 + 1083 28 123 29 93 + 1084 28 123 29 120 + 1085 27 120 29 35 + 1086 28 120 29 93 + 1087 27 124 30 36 + 1088 28 124 30 94 + 1089 28 124 30 119 + 1090 27 94 30 36 + 1091 27 119 30 36 + 1092 28 119 30 94 + 1093 27 116 31 33 + 1094 28 116 31 95 + 1095 27 127 31 33 + 1096 28 127 31 116 + 1097 28 127 31 95 + 1098 27 95 31 33 + 1099 27 115 32 34 + 1100 28 115 32 96 + 1101 27 128 32 34 + 1102 28 128 32 115 + 1103 28 128 32 96 + 1104 27 96 32 34 + 1105 29 9 33 1 + 1106 29 31 33 1 + 1107 29 31 33 9 + 1108 29 31 33 17 + 1109 29 17 33 1 + 1110 29 17 33 9 + 1111 29 32 34 2 + 1112 29 32 34 18 + 1113 29 32 34 10 + 1114 29 18 34 2 + 1115 29 18 34 10 + 1116 29 10 34 2 + 1117 29 29 35 3 + 1118 29 29 35 13 + 1119 29 29 35 23 + 1120 29 13 35 3 + 1121 29 23 35 3 + 1122 29 23 35 13 + 1123 29 30 36 4 + 1124 29 30 36 14 + 1125 29 30 36 24 + 1126 29 14 36 4 + 1127 29 24 36 4 + 1128 29 24 36 14 + 1129 29 19 37 5 + 1130 29 19 37 15 + 1131 29 27 37 19 + 1132 29 27 37 5 + 1133 29 27 37 15 + 1134 29 15 37 5 + 1135 29 28 38 20 + 1136 29 28 38 6 + 1137 29 28 38 16 + 1138 29 20 38 6 + 1139 29 20 38 16 + 1140 29 16 38 6 + 1141 29 25 39 11 + 1142 29 25 39 21 + 1143 29 25 39 7 + 1144 29 11 39 7 + 1145 29 21 39 11 + 1146 29 21 39 7 + 1147 29 26 40 12 + 1148 29 26 40 22 + 1149 29 26 40 8 + 1150 29 12 40 8 + 1151 29 22 40 12 + 1152 29 22 40 8 + 1153 26 137 41 1 + 1154 26 138 42 2 + 1155 26 139 43 3 + 1156 26 140 44 4 + 1157 26 141 45 5 + 1158 26 142 46 6 + 1159 26 143 47 7 + 1160 26 144 48 8 + 1161 26 145 49 9 + 1162 26 146 50 10 + 1163 26 147 51 11 + 1164 26 148 52 12 + 1165 26 149 53 13 + 1166 26 150 54 14 + 1167 26 151 55 15 + 1168 26 152 56 16 + 1169 26 153 57 17 + 1170 26 154 58 18 + 1171 26 155 59 19 + 1172 26 156 60 20 + 1173 26 157 61 21 + 1174 26 158 62 22 + 1175 26 159 63 23 + 1176 26 160 64 24 + 1177 26 140 65 14 + 1178 26 139 66 13 + 1179 26 138 67 10 + 1180 26 137 68 9 + 1181 26 142 69 16 + 1182 26 141 70 15 + 1183 26 144 71 12 + 1184 26 143 72 11 + 1185 26 160 73 4 + 1186 26 159 74 3 + 1187 26 158 75 8 + 1188 26 157 76 7 + 1189 26 154 77 2 + 1190 26 153 78 1 + 1191 26 156 79 6 + 1192 26 155 80 5 + 1193 26 150 81 24 + 1194 26 149 82 23 + 1195 26 152 83 20 + 1196 26 151 84 19 + 1197 26 148 85 22 + 1198 26 147 86 21 + 1199 26 146 87 18 + 1200 26 145 88 17 + 1201 26 161 89 25 + 1202 26 162 90 26 + 1203 26 163 91 27 + 1204 26 164 92 28 + 1205 26 165 93 29 + 1206 26 166 94 30 + 1207 26 167 95 31 + 1208 26 168 96 32 + 1209 26 169 97 11 + 1210 26 170 98 12 + 1211 26 171 99 13 + 1212 26 172 100 14 + 1213 26 173 101 9 + 1214 26 174 102 10 + 1215 26 175 103 15 + 1216 26 176 104 16 + 1217 26 164 105 20 + 1218 26 163 106 19 + 1219 26 162 107 22 + 1220 26 161 108 21 + 1221 26 166 109 24 + 1222 26 165 110 23 + 1223 26 168 111 18 + 1224 26 167 112 17 + 1225 26 176 113 28 + 1226 26 175 114 27 + 1227 26 174 115 32 + 1228 26 173 116 31 + 1229 26 170 117 26 + 1230 26 169 118 25 + 1231 26 172 119 30 + 1232 26 171 120 29 + 1233 26 177 121 27 + 1234 26 178 122 28 + 1235 26 179 123 29 + 1236 26 180 124 30 + 1237 26 181 125 25 + 1238 26 182 126 26 + 1239 26 183 127 31 + 1240 26 184 128 32 + 1241 26 182 129 8 + 1242 26 181 130 7 + 1243 26 184 131 2 + 1244 26 183 132 1 + 1245 26 180 133 4 + 1246 26 179 134 3 + 1247 26 178 135 6 + 1248 26 177 136 5 + 1249 22 281 137 41 + 1250 22 281 137 68 + 1251 19 68 137 41 + 1252 19 67 138 42 + 1253 22 282 138 42 + 1254 22 282 138 67 + 1255 19 66 139 43 + 1256 22 283 139 66 + 1257 22 283 139 43 + 1258 19 65 140 44 + 1259 22 284 140 65 + 1260 22 284 140 44 + 1261 22 285 141 45 + 1262 22 285 141 70 + 1263 19 70 141 45 + 1264 19 69 142 46 + 1265 22 286 142 69 + 1266 22 286 142 46 + 1267 22 287 143 47 + 1268 22 287 143 72 + 1269 19 72 143 47 + 1270 22 288 144 71 + 1271 22 288 144 48 + 1272 19 71 144 48 + 1273 22 289 145 49 + 1274 22 289 145 88 + 1275 19 88 145 49 + 1276 19 87 146 50 + 1277 22 290 146 50 + 1278 22 290 146 87 + 1279 22 291 147 51 + 1280 22 291 147 86 + 1281 19 86 147 51 + 1282 22 292 148 52 + 1283 22 292 148 85 + 1284 19 85 148 52 + 1285 19 82 149 53 + 1286 22 293 149 82 + 1287 22 293 149 53 + 1288 19 81 150 54 + 1289 22 294 150 81 + 1290 22 294 150 54 + 1291 19 84 151 55 + 1292 22 295 151 84 + 1293 22 295 151 55 + 1294 19 83 152 56 + 1295 22 296 152 83 + 1296 22 296 152 56 + 1297 22 297 153 57 + 1298 22 297 153 78 + 1299 19 78 153 57 + 1300 19 77 154 58 + 1301 22 298 154 58 + 1302 22 298 154 77 + 1303 22 299 155 59 + 1304 22 299 155 80 + 1305 19 80 155 59 + 1306 22 300 156 60 + 1307 22 300 156 79 + 1308 19 79 156 60 + 1309 22 301 157 76 + 1310 22 301 157 61 + 1311 19 76 157 61 + 1312 19 75 158 62 + 1313 22 302 158 75 + 1314 22 302 158 62 + 1315 19 74 159 63 + 1316 22 303 159 74 + 1317 22 303 159 63 + 1318 19 73 160 64 + 1319 22 304 160 73 + 1320 22 304 160 64 + 1321 22 305 161 89 + 1322 22 305 161 108 + 1323 19 108 161 89 + 1324 22 306 162 107 + 1325 22 306 162 90 + 1326 19 107 162 90 + 1327 19 106 163 91 + 1328 22 307 163 106 + 1329 22 307 163 91 + 1330 19 105 164 92 + 1331 22 308 164 105 + 1332 22 308 164 92 + 1333 22 309 165 93 + 1334 22 309 165 110 + 1335 19 110 165 93 + 1336 19 109 166 94 + 1337 22 310 166 109 + 1338 22 310 166 94 + 1339 22 311 167 95 + 1340 22 311 167 112 + 1341 19 112 167 95 + 1342 19 111 168 96 + 1343 22 312 168 96 + 1344 22 312 168 111 + 1345 22 313 169 97 + 1346 22 313 169 118 + 1347 19 118 169 97 + 1348 22 314 170 117 + 1349 22 314 170 98 + 1350 19 117 170 98 + 1351 22 315 171 99 + 1352 22 315 171 120 + 1353 19 120 171 99 + 1354 22 316 172 100 + 1355 22 316 172 119 + 1356 19 119 172 100 + 1357 19 116 173 101 + 1358 22 317 173 101 + 1359 22 317 173 116 + 1360 19 115 174 102 + 1361 22 318 174 115 + 1362 22 318 174 102 + 1363 19 114 175 103 + 1364 22 319 175 114 + 1365 22 319 175 103 + 1366 19 113 176 104 + 1367 22 320 176 113 + 1368 22 320 176 104 + 1369 22 321 177 121 + 1370 22 321 177 136 + 1371 19 136 177 121 + 1372 22 322 178 135 + 1373 22 322 178 122 + 1374 19 135 178 122 + 1375 22 323 179 123 + 1376 22 323 179 134 + 1377 19 134 179 123 + 1378 22 324 180 124 + 1379 22 324 180 133 + 1380 19 133 180 124 + 1381 22 325 181 125 + 1382 22 325 181 130 + 1383 19 130 181 125 + 1384 19 129 182 126 + 1385 22 326 182 129 + 1386 22 326 182 126 + 1387 19 132 183 127 + 1388 22 327 183 132 + 1389 22 327 183 127 + 1390 19 131 184 128 + 1391 22 328 184 131 + 1392 22 328 184 128 + 1393 24 329 185 281 + 1394 21 329 185 188 + 1395 25 281 185 188 + 1396 25 282 186 187 + 1397 24 330 186 282 + 1398 21 330 186 187 + 1399 21 331 187 186 + 1400 24 331 187 283 + 1401 25 283 187 186 + 1402 25 284 188 185 + 1403 21 332 188 185 + 1404 24 332 188 284 + 1405 24 333 189 285 + 1406 21 333 189 192 + 1407 25 285 189 192 + 1408 25 286 190 191 + 1409 24 334 190 286 + 1410 21 334 190 191 + 1411 21 335 191 190 + 1412 24 335 191 287 + 1413 25 287 191 190 + 1414 25 288 192 189 + 1415 24 336 192 288 + 1416 21 336 192 189 + 1417 25 289 193 196 + 1418 24 337 193 289 + 1419 21 337 193 196 + 1420 25 290 194 195 + 1421 24 338 194 290 + 1422 21 338 194 195 + 1423 21 339 195 194 + 1424 24 339 195 291 + 1425 25 291 195 194 + 1426 21 340 196 193 + 1427 24 340 196 292 + 1428 25 292 196 193 + 1429 25 293 197 200 + 1430 24 341 197 293 + 1431 21 341 197 200 + 1432 21 342 198 199 + 1433 24 342 198 294 + 1434 25 294 198 199 + 1435 21 343 199 198 + 1436 24 343 199 295 + 1437 25 295 199 198 + 1438 21 344 200 197 + 1439 24 344 200 296 + 1440 25 296 200 197 + 1441 25 297 201 204 + 1442 24 345 201 297 + 1443 21 345 201 204 + 1444 21 346 202 203 + 1445 24 346 202 298 + 1446 25 298 202 203 + 1447 21 347 203 202 + 1448 24 347 203 299 + 1449 25 299 203 202 + 1450 25 300 204 201 + 1451 21 348 204 201 + 1452 24 348 204 300 + 1453 24 349 205 301 + 1454 21 349 205 208 + 1455 25 301 205 208 + 1456 21 350 206 207 + 1457 24 350 206 302 + 1458 25 302 206 207 + 1459 21 351 207 206 + 1460 24 351 207 303 + 1461 25 303 207 206 + 1462 25 304 208 205 + 1463 24 352 208 304 + 1464 21 352 208 205 + 1465 24 353 209 284 + 1466 21 353 209 212 + 1467 25 284 209 212 + 1468 21 354 210 211 + 1469 24 354 210 283 + 1470 25 283 210 211 + 1471 21 355 211 210 + 1472 24 355 211 282 + 1473 25 282 211 210 + 1474 25 281 212 209 + 1475 21 356 212 209 + 1476 24 356 212 281 + 1477 24 357 213 286 + 1478 21 357 213 216 + 1479 25 286 213 216 + 1480 25 285 214 215 + 1481 24 358 214 285 + 1482 21 358 214 215 + 1483 21 359 215 214 + 1484 24 359 215 288 + 1485 25 288 215 214 + 1486 25 287 216 213 + 1487 21 360 216 213 + 1488 24 360 216 287 + 1489 21 361 217 220 + 1490 24 361 217 304 + 1491 25 304 217 220 + 1492 21 362 218 219 + 1493 24 362 218 303 + 1494 25 303 218 219 + 1495 21 363 219 218 + 1496 24 363 219 302 + 1497 25 302 219 218 + 1498 21 364 220 217 + 1499 24 364 220 301 + 1500 25 301 220 217 + 1501 25 298 221 224 + 1502 24 365 221 298 + 1503 21 365 221 224 + 1504 25 297 222 223 + 1505 24 366 222 297 + 1506 21 366 222 223 + 1507 25 300 223 222 + 1508 24 367 223 300 + 1509 21 367 223 222 + 1510 25 299 224 221 + 1511 24 368 224 299 + 1512 21 368 224 221 + 1513 21 369 225 228 + 1514 24 369 225 294 + 1515 25 294 225 228 + 1516 21 370 226 227 + 1517 24 370 226 293 + 1518 25 293 226 227 + 1519 21 371 227 226 + 1520 24 371 227 296 + 1521 25 296 227 226 + 1522 21 372 228 225 + 1523 24 372 228 295 + 1524 25 295 228 225 + 1525 25 292 229 232 + 1526 24 373 229 292 + 1527 21 373 229 232 + 1528 25 291 230 231 + 1529 24 374 230 291 + 1530 21 374 230 231 + 1531 25 290 231 230 + 1532 24 375 231 290 + 1533 21 375 231 230 + 1534 25 289 232 229 + 1535 24 376 232 289 + 1536 21 376 232 229 + 1537 25 305 233 236 + 1538 24 377 233 305 + 1539 21 377 233 236 + 1540 25 306 234 235 + 1541 24 378 234 306 + 1542 21 378 234 235 + 1543 25 307 235 234 + 1544 21 379 235 234 + 1545 24 379 235 307 + 1546 21 380 236 233 + 1547 24 380 236 308 + 1548 25 308 236 233 + 1549 24 381 237 309 + 1550 21 381 237 240 + 1551 25 309 237 240 + 1552 25 310 238 239 + 1553 24 382 238 310 + 1554 21 382 238 239 + 1555 21 383 239 238 + 1556 24 383 239 311 + 1557 25 311 239 238 + 1558 21 384 240 237 + 1559 24 384 240 312 + 1560 25 312 240 237 + 1561 25 313 241 244 + 1562 24 385 241 313 + 1563 21 385 241 244 + 1564 25 314 242 243 + 1565 24 386 242 314 + 1566 21 386 242 243 + 1567 25 315 243 242 + 1568 21 387 243 242 + 1569 24 387 243 315 + 1570 25 316 244 241 + 1571 21 388 244 241 + 1572 24 388 244 316 + 1573 25 317 245 248 + 1574 24 389 245 317 + 1575 21 389 245 248 + 1576 25 318 246 247 + 1577 24 390 246 318 + 1578 21 390 246 247 + 1579 25 319 247 246 + 1580 21 391 247 246 + 1581 24 391 247 319 + 1582 25 320 248 245 + 1583 24 392 248 320 + 1584 21 392 248 245 + 1585 24 393 249 308 + 1586 21 393 249 252 + 1587 25 308 249 252 + 1588 21 394 250 251 + 1589 24 394 250 307 + 1590 25 307 250 251 + 1591 21 395 251 250 + 1592 24 395 251 306 + 1593 25 306 251 250 + 1594 25 305 252 249 + 1595 21 396 252 249 + 1596 24 396 252 305 + 1597 24 397 253 310 + 1598 21 397 253 256 + 1599 25 310 253 256 + 1600 25 309 254 255 + 1601 24 398 254 309 + 1602 21 398 254 255 + 1603 21 399 255 254 + 1604 24 399 255 312 + 1605 25 312 255 254 + 1606 25 311 256 253 + 1607 21 400 256 253 + 1608 24 400 256 311 + 1609 21 401 257 260 + 1610 24 401 257 320 + 1611 25 320 257 260 + 1612 21 402 258 259 + 1613 24 402 258 319 + 1614 25 319 258 259 + 1615 21 403 259 258 + 1616 24 403 259 318 + 1617 25 318 259 258 + 1618 21 404 260 257 + 1619 24 404 260 317 + 1620 25 317 260 257 + 1621 25 314 261 264 + 1622 24 405 261 314 + 1623 21 405 261 264 + 1624 25 313 262 263 + 1625 24 406 262 313 + 1626 21 406 262 263 + 1627 25 316 263 262 + 1628 24 407 263 316 + 1629 21 407 263 262 + 1630 25 315 264 261 + 1631 24 408 264 315 + 1632 21 408 264 261 + 1633 25 321 265 268 + 1634 24 409 265 321 + 1635 21 409 265 268 + 1636 25 322 266 267 + 1637 24 410 266 322 + 1638 21 410 266 267 + 1639 25 323 267 266 + 1640 21 411 267 266 + 1641 24 411 267 323 + 1642 25 324 268 265 + 1643 21 412 268 265 + 1644 24 412 268 324 + 1645 24 413 269 325 + 1646 21 413 269 272 + 1647 25 325 269 272 + 1648 25 326 270 271 + 1649 24 414 270 326 + 1650 21 414 270 271 + 1651 25 327 271 270 + 1652 21 415 271 270 + 1653 24 415 271 327 + 1654 21 416 272 269 + 1655 24 416 272 328 + 1656 25 328 272 269 + 1657 21 417 273 276 + 1658 24 417 273 326 + 1659 25 326 273 276 + 1660 21 418 274 275 + 1661 24 418 274 325 + 1662 25 325 274 275 + 1663 21 419 275 274 + 1664 24 419 275 328 + 1665 25 328 275 274 + 1666 21 420 276 273 + 1667 24 420 276 327 + 1668 25 327 276 273 + 1669 25 324 277 280 + 1670 24 421 277 324 + 1671 21 421 277 280 + 1672 25 323 278 279 + 1673 24 422 278 323 + 1674 21 422 278 279 + 1675 25 322 279 278 + 1676 24 423 279 322 + 1677 21 423 279 278 + 1678 25 321 280 277 + 1679 24 424 280 321 + 1680 21 424 280 277 + 1681 23 185 281 137 + 1682 23 212 281 137 + 1683 20 212 281 185 + 1684 23 211 282 138 + 1685 20 211 282 186 + 1686 23 186 282 138 + 1687 23 210 283 139 + 1688 20 210 283 187 + 1689 23 187 283 139 + 1690 23 209 284 140 + 1691 20 209 284 188 + 1692 23 188 284 140 + 1693 23 189 285 141 + 1694 20 214 285 189 + 1695 23 214 285 141 + 1696 23 213 286 142 + 1697 20 213 286 190 + 1698 23 190 286 142 + 1699 23 191 287 143 + 1700 20 216 287 191 + 1701 23 216 287 143 + 1702 23 192 288 144 + 1703 20 215 288 192 + 1704 23 215 288 144 + 1705 23 193 289 145 + 1706 23 232 289 145 + 1707 20 232 289 193 + 1708 23 231 290 146 + 1709 20 231 290 194 + 1710 23 194 290 146 + 1711 23 195 291 147 + 1712 23 230 291 147 + 1713 20 230 291 195 + 1714 23 229 292 148 + 1715 20 229 292 196 + 1716 23 196 292 148 + 1717 23 197 293 149 + 1718 20 226 293 197 + 1719 23 226 293 149 + 1720 23 225 294 150 + 1721 20 225 294 198 + 1722 23 198 294 150 + 1723 20 228 295 199 + 1724 23 228 295 151 + 1725 23 199 295 151 + 1726 20 227 296 200 + 1727 23 227 296 152 + 1728 23 200 296 152 + 1729 23 201 297 153 + 1730 23 222 297 153 + 1731 20 222 297 201 + 1732 23 221 298 154 + 1733 20 221 298 202 + 1734 23 202 298 154 + 1735 23 203 299 155 + 1736 23 224 299 155 + 1737 20 224 299 203 + 1738 23 223 300 156 + 1739 20 223 300 204 + 1740 23 204 300 156 + 1741 23 205 301 157 + 1742 20 220 301 205 + 1743 23 220 301 157 + 1744 23 219 302 158 + 1745 20 219 302 206 + 1746 23 206 302 158 + 1747 20 218 303 207 + 1748 23 218 303 159 + 1749 23 207 303 159 + 1750 20 217 304 208 + 1751 23 217 304 160 + 1752 23 208 304 160 + 1753 23 233 305 161 + 1754 23 252 305 161 + 1755 20 252 305 233 + 1756 23 251 306 162 + 1757 20 251 306 234 + 1758 23 234 306 162 + 1759 23 250 307 163 + 1760 20 250 307 235 + 1761 23 235 307 163 + 1762 23 249 308 164 + 1763 20 249 308 236 + 1764 23 236 308 164 + 1765 23 237 309 165 + 1766 20 254 309 237 + 1767 23 254 309 165 + 1768 23 253 310 166 + 1769 20 253 310 238 + 1770 23 238 310 166 + 1771 23 239 311 167 + 1772 20 256 311 239 + 1773 23 256 311 167 + 1774 23 240 312 168 + 1775 20 255 312 240 + 1776 23 255 312 168 + 1777 23 241 313 169 + 1778 20 262 313 241 + 1779 23 262 313 169 + 1780 23 261 314 170 + 1781 20 261 314 242 + 1782 23 242 314 170 + 1783 23 243 315 171 + 1784 20 264 315 243 + 1785 23 264 315 171 + 1786 23 263 316 172 + 1787 20 263 316 244 + 1788 23 244 316 172 + 1789 23 245 317 173 + 1790 20 260 317 245 + 1791 23 260 317 173 + 1792 20 259 318 246 + 1793 23 259 318 174 + 1794 23 246 318 174 + 1795 20 258 319 247 + 1796 23 258 319 175 + 1797 23 247 319 175 + 1798 23 257 320 176 + 1799 20 257 320 248 + 1800 23 248 320 176 + 1801 23 265 321 177 + 1802 20 280 321 265 + 1803 23 280 321 177 + 1804 23 279 322 178 + 1805 20 279 322 266 + 1806 23 266 322 178 + 1807 23 267 323 179 + 1808 20 278 323 267 + 1809 23 278 323 179 + 1810 23 268 324 180 + 1811 20 277 324 268 + 1812 23 277 324 180 + 1813 23 269 325 181 + 1814 20 274 325 269 + 1815 23 274 325 181 + 1816 20 273 326 270 + 1817 23 273 326 182 + 1818 23 270 326 182 + 1819 20 276 327 271 + 1820 23 276 327 183 + 1821 23 271 327 183 + 1822 23 275 328 184 + 1823 20 275 328 272 + 1824 23 272 328 184 + +Dihedrals + + 1 4 292 229 232 289 + 2 5 292 229 232 376 + 3 5 373 229 232 289 + 4 7 373 229 232 376 + 5 10 289 145 49 9 + 6 9 88 145 49 9 + 7 9 49 145 88 17 + 8 10 289 145 88 17 + 9 3 193 289 145 49 + 10 3 193 289 145 88 + 11 3 232 289 145 49 + 12 3 232 289 145 88 + 13 2 145 289 193 337 + 14 8 145 289 193 196 + 15 6 232 289 193 337 + 16 1 232 289 193 196 + 17 8 145 289 232 229 + 18 2 145 289 232 376 + 19 1 193 289 232 229 + 20 6 193 289 232 376 + 21 3 132 183 327 276 + 22 3 132 183 327 271 + 23 3 127 183 327 276 + 24 3 127 183 327 271 + 25 4 326 270 271 327 + 26 5 326 270 271 415 + 27 5 414 270 271 327 + 28 7 414 270 271 415 + 29 7 417 273 276 420 + 30 5 417 273 276 327 + 31 5 326 273 276 420 + 32 4 326 273 276 327 + 33 1 273 326 270 271 + 34 6 273 326 270 414 + 35 8 182 326 270 271 + 36 2 182 326 270 414 + 37 6 417 273 326 270 + 38 2 417 273 326 182 + 39 1 276 273 326 270 + 40 8 276 273 326 182 + 41 1 270 271 327 276 + 42 8 270 271 327 183 + 43 6 415 271 327 276 + 44 2 415 271 327 183 + 45 1 273 276 327 271 + 46 8 273 276 327 183 + 47 6 420 276 327 271 + 48 2 420 276 327 183 + 49 3 273 326 182 129 + 50 3 273 326 182 126 + 51 3 270 326 182 129 + 52 3 270 326 182 126 + 53 11 45 5 37 19 + 54 11 45 5 37 27 + 55 11 45 5 37 15 + 56 11 80 5 37 19 + 57 11 80 5 37 27 + 58 11 80 5 37 15 + 59 11 136 5 37 19 + 60 11 136 5 37 27 + 61 11 136 5 37 15 + 62 11 19 37 15 55 + 63 11 19 37 15 70 + 64 11 19 37 15 103 + 65 11 5 37 15 55 + 66 11 5 37 15 70 + 67 11 5 37 15 103 + 68 11 27 37 15 55 + 69 11 27 37 15 70 + 70 11 27 37 15 103 + 71 11 106 19 37 5 + 72 11 106 19 37 27 + 73 11 106 19 37 15 + 74 11 59 19 37 5 + 75 11 59 19 37 27 + 76 11 59 19 37 15 + 77 11 84 19 37 5 + 78 11 84 19 37 27 + 79 11 84 19 37 15 + 80 11 121 27 37 19 + 81 11 121 27 37 5 + 82 11 121 27 37 15 + 83 11 114 27 37 19 + 84 11 114 27 37 5 + 85 11 114 27 37 15 + 86 11 91 27 37 19 + 87 11 91 27 37 5 + 88 11 91 27 37 15 + 89 9 106 163 91 27 + 90 10 307 163 91 27 + 91 9 19 106 163 91 + 92 10 19 106 163 307 + 93 9 15 103 175 114 + 94 10 15 103 175 319 + 95 10 27 114 175 319 + 96 9 27 114 175 103 + 97 10 321 177 121 27 + 98 9 136 177 121 27 + 99 9 121 177 136 5 + 100 10 321 177 136 5 + 101 5 286 190 191 335 + 102 4 286 190 191 287 + 103 7 334 190 191 335 + 104 5 334 190 191 287 + 105 5 357 213 216 287 + 106 7 357 213 216 360 + 107 4 286 213 216 287 + 108 5 286 213 216 360 + 109 10 7 47 143 287 + 110 9 7 47 143 72 + 111 10 287 143 72 11 + 112 9 47 143 72 11 + 113 3 47 143 287 191 + 114 3 47 143 287 216 + 115 3 72 143 287 191 + 116 3 72 143 287 216 + 117 2 335 191 287 143 + 118 6 335 191 287 216 + 119 8 190 191 287 143 + 120 1 190 191 287 216 + 121 1 191 287 216 213 + 122 6 191 287 216 360 + 123 8 143 287 216 213 + 124 2 143 287 216 360 + 125 9 87 146 50 10 + 126 10 290 146 50 10 + 127 9 50 146 87 18 + 128 10 290 146 87 18 + 129 3 231 290 146 50 + 130 3 231 290 146 87 + 131 3 194 290 146 50 + 132 3 194 290 146 87 + 133 8 146 290 194 195 + 134 2 146 290 194 338 + 135 1 231 290 194 195 + 136 6 231 290 194 338 + 137 8 146 290 231 230 + 138 2 146 290 231 375 + 139 1 194 290 231 230 + 140 6 194 290 231 375 + 141 4 291 230 231 290 + 142 5 291 230 231 375 + 143 5 374 230 231 290 + 144 7 374 230 231 375 + 145 10 297 153 57 17 + 146 9 78 153 57 17 + 147 9 57 153 78 1 + 148 10 297 153 78 1 + 149 3 201 297 153 57 + 150 3 201 297 153 78 + 151 3 222 297 153 57 + 152 3 222 297 153 78 + 153 2 153 297 201 345 + 154 8 153 297 201 204 + 155 6 222 297 201 345 + 156 1 222 297 201 204 + 157 2 153 297 222 366 + 158 8 153 297 222 223 + 159 6 201 297 222 366 + 160 1 201 297 222 223 + 161 3 268 324 180 124 + 162 3 268 324 180 133 + 163 3 277 324 180 124 + 164 3 277 324 180 133 + 165 4 321 265 268 324 + 166 5 321 265 268 412 + 167 5 409 265 268 324 + 168 7 409 265 268 412 + 169 4 324 277 280 321 + 170 5 324 277 280 424 + 171 5 421 277 280 321 + 172 7 421 277 280 424 + 173 2 177 321 265 409 + 174 8 177 321 265 268 + 175 6 280 321 265 409 + 176 1 280 321 265 268 + 177 1 265 321 280 277 + 178 6 265 321 280 424 + 179 8 177 321 280 277 + 180 2 177 321 280 424 + 181 8 265 268 324 180 + 182 1 265 268 324 277 + 183 2 412 268 324 180 + 184 6 412 268 324 277 + 185 6 268 324 277 421 + 186 1 268 324 277 280 + 187 2 180 324 277 421 + 188 8 180 324 277 280 + 189 3 265 321 177 121 + 190 3 265 321 177 136 + 191 3 280 321 177 121 + 192 3 280 321 177 136 + 193 7 354 210 211 355 + 194 5 354 210 211 282 + 195 5 283 210 211 355 + 196 4 283 210 211 282 + 197 9 67 138 42 2 + 198 10 282 138 42 2 + 199 9 42 138 67 10 + 200 10 282 138 67 10 + 201 3 211 282 138 42 + 202 3 211 282 138 67 + 203 3 186 282 138 42 + 204 3 186 282 138 67 + 205 8 138 282 186 187 + 206 2 138 282 186 330 + 207 1 211 282 186 187 + 208 6 211 282 186 330 + 209 8 138 282 211 210 + 210 2 138 282 211 355 + 211 1 186 282 211 210 + 212 6 186 282 211 355 + 213 10 5 45 141 285 + 214 9 5 45 141 70 + 215 10 285 141 70 15 + 216 9 45 141 70 15 + 217 3 45 141 285 189 + 218 3 45 141 285 214 + 219 3 70 141 285 189 + 220 3 70 141 285 214 + 221 2 333 189 285 141 + 222 6 333 189 285 214 + 223 8 192 189 285 141 + 224 1 192 189 285 214 + 225 6 189 285 214 358 + 226 1 189 285 214 215 + 227 2 141 285 214 358 + 228 8 141 285 214 215 + 229 3 125 181 325 269 + 230 3 125 181 325 274 + 231 3 130 181 325 269 + 232 3 130 181 325 274 + 233 7 413 269 272 416 + 234 5 413 269 272 328 + 235 5 325 269 272 416 + 236 4 325 269 272 328 + 237 7 418 274 275 419 + 238 5 418 274 275 328 + 239 5 325 274 275 419 + 240 4 325 274 275 328 + 241 2 413 269 325 181 + 242 6 413 269 325 274 + 243 8 272 269 325 181 + 244 1 272 269 325 274 + 245 6 418 274 325 269 + 246 2 418 274 325 181 + 247 1 275 274 325 269 + 248 8 275 274 325 181 + 249 6 416 272 328 275 + 250 2 416 272 328 184 + 251 1 269 272 328 275 + 252 8 269 272 328 184 + 253 8 274 275 328 184 + 254 1 274 275 328 272 + 255 2 419 275 328 184 + 256 6 419 275 328 272 + 257 3 131 184 328 275 + 258 3 131 184 328 272 + 259 3 128 184 328 275 + 260 3 128 184 328 272 + 261 3 114 175 319 258 + 262 3 114 175 319 247 + 263 3 103 175 319 258 + 264 3 103 175 319 247 + 265 4 318 246 247 319 + 266 5 318 246 247 391 + 267 5 390 246 247 319 + 268 7 390 246 247 391 + 269 7 402 258 259 403 + 270 5 402 258 259 318 + 271 5 319 258 259 403 + 272 4 319 258 259 318 + 273 1 259 318 246 247 + 274 6 259 318 246 390 + 275 8 174 318 246 247 + 276 2 174 318 246 390 + 277 1 258 259 318 246 + 278 8 258 259 318 174 + 279 6 403 259 318 246 + 280 2 403 259 318 174 + 281 1 246 247 319 258 + 282 8 246 247 319 175 + 283 6 391 247 319 258 + 284 2 391 247 319 175 + 285 6 402 258 319 247 + 286 2 402 258 319 175 + 287 1 259 258 319 247 + 288 8 259 258 319 175 + 289 3 259 318 174 115 + 290 3 259 318 174 102 + 291 3 246 318 174 115 + 292 3 246 318 174 102 + 293 3 95 167 311 239 + 294 3 95 167 311 256 + 295 3 112 167 311 239 + 296 3 112 167 311 256 + 297 3 253 310 166 109 + 298 3 253 310 166 94 + 299 3 238 310 166 109 + 300 3 238 310 166 94 + 301 5 310 238 239 383 + 302 4 310 238 239 311 + 303 7 382 238 239 383 + 304 5 382 238 239 311 + 305 5 397 253 256 311 + 306 7 397 253 256 400 + 307 4 310 253 256 311 + 308 5 310 253 256 400 + 309 1 253 310 238 239 + 310 6 253 310 238 382 + 311 8 166 310 238 239 + 312 2 166 310 238 382 + 313 2 397 253 310 166 + 314 6 397 253 310 238 + 315 8 256 253 310 166 + 316 1 256 253 310 238 + 317 2 383 239 311 167 + 318 6 383 239 311 256 + 319 8 238 239 311 167 + 320 1 238 239 311 256 + 321 1 239 311 256 253 + 322 6 239 311 256 400 + 323 8 167 311 256 253 + 324 2 167 311 256 400 + 325 11 73 4 36 30 + 326 11 73 4 36 14 + 327 11 73 4 36 24 + 328 11 44 4 36 30 + 329 11 44 4 36 14 + 330 11 44 4 36 24 + 331 11 133 4 36 30 + 332 11 133 4 36 14 + 333 11 133 4 36 24 + 334 11 4 36 14 100 + 335 11 4 36 14 65 + 336 11 4 36 14 54 + 337 11 30 36 14 100 + 338 11 30 36 14 65 + 339 11 30 36 14 54 + 340 11 24 36 14 100 + 341 11 24 36 14 65 + 342 11 24 36 14 54 + 343 11 4 36 24 81 + 344 11 4 36 24 109 + 345 11 4 36 24 64 + 346 11 30 36 24 81 + 347 11 30 36 24 109 + 348 11 30 36 24 64 + 349 11 14 36 24 81 + 350 11 14 36 24 109 + 351 11 14 36 24 64 + 352 11 4 36 30 124 + 353 11 4 36 30 94 + 354 11 4 36 30 119 + 355 11 14 36 30 124 + 356 11 14 36 30 94 + 357 11 14 36 30 119 + 358 11 24 36 30 124 + 359 11 24 36 30 94 + 360 11 24 36 30 119 + 361 9 109 166 94 30 + 362 10 310 166 94 30 + 363 10 24 109 166 310 + 364 9 24 109 166 94 + 365 10 14 100 172 316 + 366 9 14 100 172 119 + 367 10 316 172 119 30 + 368 9 100 172 119 30 + 369 10 30 124 180 324 + 370 9 30 124 180 133 + 371 9 124 180 133 4 + 372 10 324 180 133 4 + 373 9 15 55 151 84 + 374 10 15 55 151 295 + 375 10 19 84 151 295 + 376 9 19 84 151 55 + 377 3 84 151 295 228 + 378 3 84 151 295 199 + 379 3 55 151 295 228 + 380 3 55 151 295 199 + 381 6 343 199 295 228 + 382 2 343 199 295 151 + 383 1 198 199 295 228 + 384 8 198 199 295 151 + 385 1 225 228 295 199 + 386 8 225 228 295 151 + 387 6 372 228 295 199 + 388 2 372 228 295 151 + 389 7 342 198 199 343 + 390 5 342 198 199 295 + 391 5 294 198 199 343 + 392 4 294 198 199 295 + 393 7 369 225 228 372 + 394 5 369 225 228 295 + 395 5 294 225 228 372 + 396 4 294 225 228 295 + 397 5 290 194 195 339 + 398 4 290 194 195 291 + 399 7 338 194 195 339 + 400 5 338 194 195 291 + 401 10 291 147 51 11 + 402 9 86 147 51 11 + 403 9 51 147 86 21 + 404 10 291 147 86 21 + 405 3 195 291 147 51 + 406 3 195 291 147 86 + 407 3 230 291 147 51 + 408 3 230 291 147 86 + 409 8 147 291 195 194 + 410 2 147 291 195 339 + 411 1 230 291 195 194 + 412 6 230 291 195 339 + 413 2 147 291 230 374 + 414 8 147 291 230 231 + 415 6 195 291 230 374 + 416 1 195 291 230 231 + 417 11 130 7 39 25 + 418 11 130 7 39 11 + 419 11 130 7 39 21 + 420 11 76 7 39 25 + 421 11 76 7 39 11 + 422 11 76 7 39 21 + 423 11 47 7 39 25 + 424 11 47 7 39 11 + 425 11 47 7 39 21 + 426 11 97 11 39 25 + 427 11 97 11 39 21 + 428 11 97 11 39 7 + 429 11 51 11 39 25 + 430 11 51 11 39 21 + 431 11 51 11 39 7 + 432 11 72 11 39 25 + 433 11 72 11 39 21 + 434 11 72 11 39 7 + 435 11 108 21 39 25 + 436 11 108 21 39 11 + 437 11 108 21 39 7 + 438 11 61 21 39 25 + 439 11 61 21 39 11 + 440 11 61 21 39 7 + 441 11 86 21 39 25 + 442 11 86 21 39 11 + 443 11 86 21 39 7 + 444 11 89 25 39 11 + 445 11 89 25 39 21 + 446 11 89 25 39 7 + 447 11 125 25 39 11 + 448 11 125 25 39 21 + 449 11 125 25 39 7 + 450 11 118 25 39 11 + 451 11 118 25 39 21 + 452 11 118 25 39 7 + 453 10 305 161 89 25 + 454 9 108 161 89 25 + 455 9 89 161 108 21 + 456 10 305 161 108 21 + 457 10 313 169 97 11 + 458 9 118 169 97 11 + 459 9 97 169 118 25 + 460 10 313 169 118 25 + 461 10 25 125 181 325 + 462 9 25 125 181 130 + 463 9 7 130 181 125 + 464 10 7 130 181 325 + 465 7 362 218 219 363 + 466 5 362 218 219 302 + 467 5 303 218 219 363 + 468 4 303 218 219 302 + 469 9 75 158 62 22 + 470 10 302 158 62 22 + 471 9 8 75 158 62 + 472 10 8 75 158 302 + 473 3 219 302 158 75 + 474 3 219 302 158 62 + 475 3 206 302 158 75 + 476 3 206 302 158 62 + 477 6 219 302 206 350 + 478 1 219 302 206 207 + 479 2 158 302 206 350 + 480 8 158 302 206 207 + 481 8 218 219 302 158 + 482 1 218 219 302 206 + 483 2 363 219 302 158 + 484 6 363 219 302 206 + 485 3 263 316 172 100 + 486 3 263 316 172 119 + 487 3 244 316 172 100 + 488 3 244 316 172 119 + 489 4 313 241 244 316 + 490 5 313 241 244 388 + 491 5 385 241 244 316 + 492 7 385 241 244 388 + 493 4 313 262 263 316 + 494 5 313 262 263 407 + 495 5 406 262 263 316 + 496 7 406 262 263 407 + 497 2 169 313 241 385 + 498 8 169 313 241 244 + 499 6 262 313 241 385 + 500 1 262 313 241 244 + 501 6 241 313 262 406 + 502 1 241 313 262 263 + 503 2 169 313 262 406 + 504 8 169 313 262 263 + 505 8 172 316 244 241 + 506 2 172 316 244 388 + 507 1 263 316 244 241 + 508 6 263 316 244 388 + 509 8 172 316 263 262 + 510 2 172 316 263 407 + 511 1 244 316 263 262 + 512 6 244 316 263 407 + 513 3 241 313 169 97 + 514 3 241 313 169 118 + 515 3 262 313 169 97 + 516 3 262 313 169 118 + 517 9 23 63 159 74 + 518 10 23 63 159 303 + 519 10 3 74 159 303 + 520 9 3 74 159 63 + 521 3 74 159 303 218 + 522 3 74 159 303 207 + 523 3 63 159 303 218 + 524 3 63 159 303 207 + 525 6 351 207 303 218 + 526 2 351 207 303 159 + 527 1 206 207 303 218 + 528 8 206 207 303 159 + 529 6 362 218 303 207 + 530 2 362 218 303 159 + 531 1 219 218 303 207 + 532 8 219 218 303 159 + 533 7 350 206 207 351 + 534 5 350 206 207 303 + 535 5 302 206 207 351 + 536 4 302 206 207 303 + 537 10 20 60 156 300 + 538 9 20 60 156 79 + 539 10 300 156 79 6 + 540 9 60 156 79 6 + 541 3 223 300 156 60 + 542 3 223 300 156 79 + 543 3 204 300 156 60 + 544 3 204 300 156 79 + 545 8 156 300 204 201 + 546 2 156 300 204 348 + 547 1 223 300 204 201 + 548 6 223 300 204 348 + 549 8 156 300 223 222 + 550 2 156 300 223 367 + 551 1 204 300 223 222 + 552 6 204 300 223 367 + 553 4 297 201 204 300 + 554 5 297 201 204 348 + 555 5 345 201 204 300 + 556 7 345 201 204 348 + 557 4 297 222 223 300 + 558 5 297 222 223 367 + 559 5 366 222 223 300 + 560 7 366 222 223 367 + 561 3 101 173 317 245 + 562 3 101 173 317 260 + 563 3 116 173 317 245 + 564 3 116 173 317 260 + 565 4 317 245 248 320 + 566 5 317 245 248 392 + 567 5 389 245 248 320 + 568 7 389 245 248 392 + 569 7 401 257 260 404 + 570 5 401 257 260 317 + 571 5 320 257 260 404 + 572 4 320 257 260 317 + 573 6 389 245 317 260 + 574 2 389 245 317 173 + 575 1 248 245 317 260 + 576 8 248 245 317 173 + 577 1 257 260 317 245 + 578 8 257 260 317 173 + 579 6 404 260 317 245 + 580 2 404 260 317 173 + 581 1 245 248 320 257 + 582 8 245 248 320 176 + 583 6 392 248 320 257 + 584 2 392 248 320 176 + 585 2 401 257 320 176 + 586 6 401 257 320 248 + 587 8 260 257 320 176 + 588 1 260 257 320 248 + 589 3 113 176 320 257 + 590 3 113 176 320 248 + 591 3 104 176 320 257 + 592 3 104 176 320 248 + 593 10 21 61 157 301 + 594 9 21 61 157 76 + 595 10 7 76 157 301 + 596 9 7 76 157 61 + 597 3 76 157 301 205 + 598 3 76 157 301 220 + 599 3 61 157 301 205 + 600 3 61 157 301 220 + 601 6 349 205 301 220 + 602 2 349 205 301 157 + 603 1 208 205 301 220 + 604 8 208 205 301 157 + 605 1 217 220 301 205 + 606 8 217 220 301 157 + 607 6 364 220 301 205 + 608 2 364 220 301 157 + 609 7 361 217 220 364 + 610 5 361 217 220 301 + 611 5 304 217 220 364 + 612 4 304 217 220 301 + 613 3 93 165 309 237 + 614 3 93 165 309 254 + 615 3 110 165 309 237 + 616 3 110 165 309 254 + 617 3 96 168 312 240 + 618 3 96 168 312 255 + 619 3 111 168 312 240 + 620 3 111 168 312 255 + 621 7 381 237 240 384 + 622 5 381 237 240 312 + 623 5 309 237 240 384 + 624 4 309 237 240 312 + 625 5 309 254 255 399 + 626 4 309 254 255 312 + 627 7 398 254 255 399 + 628 5 398 254 255 312 + 629 2 381 237 309 165 + 630 6 381 237 309 254 + 631 8 240 237 309 165 + 632 1 240 237 309 254 + 633 6 237 309 254 398 + 634 1 237 309 254 255 + 635 2 165 309 254 398 + 636 8 165 309 254 255 + 637 6 384 240 312 255 + 638 2 384 240 312 168 + 639 1 237 240 312 255 + 640 8 237 240 312 168 + 641 1 254 255 312 240 + 642 8 254 255 312 168 + 643 6 399 255 312 240 + 644 2 399 255 312 168 + 645 7 346 202 203 347 + 646 5 346 202 203 299 + 647 5 298 202 203 347 + 648 4 298 202 203 299 + 649 4 298 221 224 299 + 650 5 298 221 224 368 + 651 5 365 221 224 299 + 652 7 365 221 224 368 + 653 10 299 155 59 19 + 654 9 80 155 59 19 + 655 9 59 155 80 5 + 656 10 299 155 80 5 + 657 3 203 299 155 59 + 658 3 203 299 155 80 + 659 3 224 299 155 59 + 660 3 224 299 155 80 + 661 8 155 299 203 202 + 662 2 155 299 203 347 + 663 1 224 299 203 202 + 664 6 224 299 203 347 + 665 8 155 299 224 221 + 666 2 155 299 224 368 + 667 1 203 299 224 221 + 668 6 203 299 224 368 + 669 5 293 197 200 344 + 670 4 293 197 200 296 + 671 7 341 197 200 344 + 672 5 341 197 200 296 + 673 7 370 226 227 371 + 674 5 370 226 227 296 + 675 5 293 226 227 371 + 676 4 293 226 227 296 + 677 9 16 56 152 83 + 678 10 16 56 152 296 + 679 10 20 83 152 296 + 680 9 20 83 152 56 + 681 3 83 152 296 227 + 682 3 83 152 296 200 + 683 3 56 152 296 227 + 684 3 56 152 296 200 + 685 6 344 200 296 227 + 686 2 344 200 296 152 + 687 1 197 200 296 227 + 688 8 197 200 296 152 + 689 1 226 227 296 200 + 690 8 226 227 296 152 + 691 6 371 227 296 200 + 692 2 371 227 296 152 + 693 3 251 306 162 107 + 694 3 251 306 162 90 + 695 3 234 306 162 107 + 696 3 234 306 162 90 + 697 3 250 307 163 106 + 698 3 250 307 163 91 + 699 3 235 307 163 106 + 700 3 235 307 163 91 + 701 4 306 234 235 307 + 702 5 306 234 235 379 + 703 5 378 234 235 307 + 704 7 378 234 235 379 + 705 7 394 250 251 395 + 706 5 394 250 251 306 + 707 5 307 250 251 395 + 708 4 307 250 251 306 + 709 8 162 306 234 235 + 710 2 162 306 234 378 + 711 1 251 306 234 235 + 712 6 251 306 234 378 + 713 8 162 306 251 250 + 714 2 162 306 251 395 + 715 1 234 306 251 250 + 716 6 234 306 251 395 + 717 1 250 307 235 234 + 718 6 250 307 235 379 + 719 8 163 307 235 234 + 720 2 163 307 235 379 + 721 2 394 250 307 163 + 722 6 394 250 307 235 + 723 8 251 250 307 163 + 724 1 251 250 307 235 + 725 5 329 185 188 284 + 726 7 329 185 188 332 + 727 4 281 185 188 284 + 728 5 281 185 188 332 + 729 9 4 44 140 65 + 730 10 4 44 140 284 + 731 10 14 65 140 284 + 732 9 14 65 140 44 + 733 3 209 284 140 65 + 734 3 209 284 140 44 + 735 3 188 284 140 65 + 736 3 188 284 140 44 + 737 1 209 284 188 185 + 738 6 209 284 188 332 + 739 8 140 284 188 185 + 740 2 140 284 188 332 + 741 2 353 209 284 140 + 742 6 353 209 284 188 + 743 8 212 209 284 140 + 744 1 212 209 284 188 + 745 3 279 322 178 135 + 746 3 279 322 178 122 + 747 3 266 322 178 135 + 748 3 266 322 178 122 + 749 4 322 266 267 323 + 750 5 322 266 267 411 + 751 5 410 266 267 323 + 752 7 410 266 267 411 + 753 4 323 278 279 322 + 754 5 323 278 279 423 + 755 5 422 278 279 322 + 756 7 422 278 279 423 + 757 8 178 322 266 267 + 758 2 178 322 266 410 + 759 1 279 322 266 267 + 760 6 279 322 266 410 + 761 8 178 322 279 278 + 762 2 178 322 279 423 + 763 1 266 322 279 278 + 764 6 266 322 279 423 + 765 1 278 323 267 266 + 766 6 278 323 267 411 + 767 8 179 323 267 266 + 768 2 179 323 267 411 + 769 6 267 323 278 422 + 770 1 267 323 278 279 + 771 2 179 323 278 422 + 772 8 179 323 278 279 + 773 3 267 323 179 123 + 774 3 267 323 179 134 + 775 3 278 323 179 123 + 776 3 278 323 179 134 + 777 11 9 33 1 41 + 778 11 9 33 1 132 + 779 11 9 33 1 78 + 780 11 31 33 1 41 + 781 11 31 33 1 132 + 782 11 31 33 1 78 + 783 11 17 33 1 41 + 784 11 17 33 1 132 + 785 11 17 33 1 78 + 786 11 1 33 9 49 + 787 11 1 33 9 68 + 788 11 1 33 9 101 + 789 11 31 33 9 49 + 790 11 31 33 9 68 + 791 11 31 33 9 101 + 792 11 17 33 9 49 + 793 11 17 33 9 68 + 794 11 17 33 9 101 + 795 11 1 33 17 57 + 796 11 1 33 17 112 + 797 11 1 33 17 88 + 798 11 9 33 17 57 + 799 11 9 33 17 112 + 800 11 9 33 17 88 + 801 11 31 33 17 57 + 802 11 31 33 17 112 + 803 11 31 33 17 88 + 804 11 1 33 31 116 + 805 11 1 33 31 127 + 806 11 1 33 31 95 + 807 11 9 33 31 116 + 808 11 9 33 31 127 + 809 11 9 33 31 95 + 810 11 17 33 31 116 + 811 11 17 33 31 127 + 812 11 17 33 31 95 + 813 10 31 95 167 311 + 814 9 31 95 167 112 + 815 9 95 167 112 17 + 816 10 311 167 112 17 + 817 9 9 101 173 116 + 818 10 9 101 173 317 + 819 9 31 116 173 101 + 820 10 31 116 173 317 + 821 9 31 127 183 132 + 822 10 31 127 183 327 + 823 9 1 132 183 127 + 824 10 1 132 183 327 + 825 5 333 189 192 288 + 826 7 333 189 192 336 + 827 4 285 189 192 288 + 828 5 285 189 192 336 + 829 5 285 214 215 359 + 830 4 285 214 215 288 + 831 7 358 214 215 359 + 832 5 358 214 215 288 + 833 10 8 48 144 288 + 834 9 8 48 144 71 + 835 10 12 71 144 288 + 836 9 12 71 144 48 + 837 3 71 144 288 192 + 838 3 71 144 288 215 + 839 3 48 144 288 192 + 840 3 48 144 288 215 + 841 1 189 192 288 215 + 842 8 189 192 288 144 + 843 6 336 192 288 215 + 844 2 336 192 288 144 + 845 1 214 215 288 192 + 846 8 214 215 288 144 + 847 6 359 215 288 192 + 848 2 359 215 288 144 + 849 5 353 209 212 281 + 850 7 353 209 212 356 + 851 4 284 209 212 281 + 852 5 284 209 212 356 + 853 10 281 137 41 1 + 854 9 68 137 41 1 + 855 9 41 137 68 9 + 856 10 281 137 68 9 + 857 3 185 281 137 41 + 858 3 185 281 137 68 + 859 3 212 281 137 41 + 860 3 212 281 137 68 + 861 2 137 281 185 329 + 862 8 137 281 185 188 + 863 6 212 281 185 329 + 864 1 212 281 185 188 + 865 8 137 281 212 209 + 866 2 137 281 212 356 + 867 1 185 281 212 209 + 868 6 185 281 212 356 + 869 3 261 314 170 117 + 870 3 261 314 170 98 + 871 3 242 314 170 117 + 872 3 242 314 170 98 + 873 4 314 242 243 315 + 874 5 314 242 243 387 + 875 5 386 242 243 315 + 876 7 386 242 243 387 + 877 4 314 261 264 315 + 878 5 314 261 264 408 + 879 5 405 261 264 315 + 880 7 405 261 264 408 + 881 8 170 314 242 243 + 882 2 170 314 242 386 + 883 1 261 314 242 243 + 884 6 261 314 242 386 + 885 2 170 314 261 405 + 886 8 170 314 261 264 + 887 6 242 314 261 405 + 888 1 242 314 261 264 + 889 8 171 315 243 242 + 890 2 171 315 243 387 + 891 1 264 315 243 242 + 892 6 264 315 243 387 + 893 1 243 315 264 261 + 894 6 243 315 264 408 + 895 8 171 315 264 261 + 896 2 171 315 264 408 + 897 3 243 315 171 99 + 898 3 243 315 171 120 + 899 3 264 315 171 99 + 900 3 264 315 171 120 + 901 11 129 8 40 26 + 902 11 129 8 40 12 + 903 11 129 8 40 22 + 904 11 75 8 40 26 + 905 11 75 8 40 12 + 906 11 75 8 40 22 + 907 11 48 8 40 26 + 908 11 48 8 40 12 + 909 11 48 8 40 22 + 910 11 98 12 40 26 + 911 11 98 12 40 22 + 912 11 98 12 40 8 + 913 11 52 12 40 26 + 914 11 52 12 40 22 + 915 11 52 12 40 8 + 916 11 71 12 40 26 + 917 11 71 12 40 22 + 918 11 71 12 40 8 + 919 11 107 22 40 26 + 920 11 107 22 40 12 + 921 11 107 22 40 8 + 922 11 85 22 40 26 + 923 11 85 22 40 12 + 924 11 85 22 40 8 + 925 11 62 22 40 26 + 926 11 62 22 40 12 + 927 11 62 22 40 8 + 928 11 90 26 40 12 + 929 11 90 26 40 22 + 930 11 90 26 40 8 + 931 11 117 26 40 12 + 932 11 117 26 40 22 + 933 11 117 26 40 8 + 934 11 126 26 40 12 + 935 11 126 26 40 22 + 936 11 126 26 40 8 + 937 10 306 162 90 26 + 938 9 107 162 90 26 + 939 10 306 162 107 22 + 940 9 90 162 107 22 + 941 10 314 170 98 12 + 942 9 117 170 98 12 + 943 10 314 170 117 26 + 944 9 98 170 117 26 + 945 9 129 182 126 26 + 946 10 326 182 126 26 + 947 10 8 129 182 326 + 948 9 8 129 182 126 + 949 11 29 35 3 74 + 950 11 29 35 3 43 + 951 11 29 35 3 134 + 952 11 13 35 3 74 + 953 11 13 35 3 43 + 954 11 13 35 3 134 + 955 11 23 35 3 74 + 956 11 23 35 3 43 + 957 11 23 35 3 134 + 958 11 29 35 13 66 + 959 11 29 35 13 53 + 960 11 29 35 13 99 + 961 11 3 35 13 66 + 962 11 3 35 13 53 + 963 11 3 35 13 99 + 964 11 23 35 13 66 + 965 11 23 35 13 53 + 966 11 23 35 13 99 + 967 11 29 35 23 82 + 968 11 29 35 23 110 + 969 11 29 35 23 63 + 970 11 3 35 23 82 + 971 11 3 35 23 110 + 972 11 3 35 23 63 + 973 11 13 35 23 82 + 974 11 13 35 23 110 + 975 11 13 35 23 63 + 976 11 3 35 29 93 + 977 11 3 35 29 123 + 978 11 3 35 29 120 + 979 11 13 35 29 93 + 980 11 13 35 29 123 + 981 11 13 35 29 120 + 982 11 23 35 29 93 + 983 11 23 35 29 123 + 984 11 23 35 29 120 + 985 10 29 93 165 309 + 986 9 29 93 165 110 + 987 9 93 165 110 23 + 988 10 309 165 110 23 + 989 10 315 171 99 13 + 990 9 120 171 99 13 + 991 10 315 171 120 29 + 992 9 99 171 120 29 + 993 10 323 179 123 29 + 994 9 134 179 123 29 + 995 10 323 179 134 3 + 996 9 123 179 134 3 + 997 3 249 308 164 105 + 998 3 249 308 164 92 + 999 3 236 308 164 105 + 1000 3 236 308 164 92 + 1001 3 233 305 161 89 + 1002 3 233 305 161 108 + 1003 3 252 305 161 89 + 1004 3 252 305 161 108 + 1005 5 305 233 236 380 + 1006 4 305 233 236 308 + 1007 7 377 233 236 380 + 1008 5 377 233 236 308 + 1009 5 393 249 252 305 + 1010 7 393 249 252 396 + 1011 4 308 249 252 305 + 1012 5 308 249 252 396 + 1013 2 161 305 233 377 + 1014 8 161 305 233 236 + 1015 6 252 305 233 377 + 1016 1 252 305 233 236 + 1017 8 161 305 252 249 + 1018 2 161 305 252 396 + 1019 1 233 305 252 249 + 1020 6 233 305 252 396 + 1021 1 249 308 236 233 + 1022 6 249 308 236 380 + 1023 8 164 308 236 233 + 1024 2 164 308 236 380 + 1025 2 393 249 308 164 + 1026 6 393 249 308 236 + 1027 8 252 249 308 164 + 1028 1 252 249 308 236 + 1029 10 12 52 148 292 + 1030 9 12 52 148 85 + 1031 10 292 148 85 22 + 1032 9 52 148 85 22 + 1033 3 229 292 148 52 + 1034 3 229 292 148 85 + 1035 3 196 292 148 52 + 1036 3 196 292 148 85 + 1037 8 148 292 196 193 + 1038 2 148 292 196 340 + 1039 1 229 292 196 193 + 1040 6 229 292 196 340 + 1041 2 148 292 229 373 + 1042 8 148 292 229 232 + 1043 6 196 292 229 373 + 1044 1 196 292 229 232 + 1045 5 289 193 196 340 + 1046 4 289 193 196 292 + 1047 7 337 193 196 340 + 1048 5 337 193 196 292 + 1049 5 349 205 208 304 + 1050 7 349 205 208 352 + 1051 4 301 205 208 304 + 1052 5 301 205 208 352 + 1053 9 24 64 160 73 + 1054 10 24 64 160 304 + 1055 10 4 73 160 304 + 1056 9 4 73 160 64 + 1057 3 73 160 304 217 + 1058 3 73 160 304 208 + 1059 3 64 160 304 217 + 1060 3 64 160 304 208 + 1061 1 205 208 304 217 + 1062 8 205 208 304 160 + 1063 6 352 208 304 217 + 1064 2 352 208 304 160 + 1065 6 361 217 304 208 + 1066 2 361 217 304 160 + 1067 1 220 217 304 208 + 1068 8 220 217 304 160 + 1069 9 69 142 46 6 + 1070 10 286 142 46 6 + 1071 9 16 69 142 46 + 1072 10 16 69 142 286 + 1073 3 213 286 142 69 + 1074 3 213 286 142 46 + 1075 3 190 286 142 69 + 1076 3 190 286 142 46 + 1077 1 213 286 190 191 + 1078 6 213 286 190 334 + 1079 8 142 286 190 191 + 1080 2 142 286 190 334 + 1081 2 357 213 286 142 + 1082 6 357 213 286 190 + 1083 8 216 213 286 142 + 1084 1 216 213 286 190 + 1085 5 282 186 187 331 + 1086 4 282 186 187 283 + 1087 7 330 186 187 331 + 1088 5 330 186 187 283 + 1089 9 66 139 43 3 + 1090 10 283 139 43 3 + 1091 9 13 66 139 43 + 1092 10 13 66 139 283 + 1093 3 210 283 139 66 + 1094 3 210 283 139 43 + 1095 3 187 283 139 66 + 1096 3 187 283 139 43 + 1097 1 210 283 187 186 + 1098 6 210 283 187 331 + 1099 8 139 283 187 186 + 1100 2 139 283 187 331 + 1101 2 354 210 283 139 + 1102 6 354 210 283 187 + 1103 8 211 210 283 139 + 1104 1 211 210 283 187 + 1105 9 13 53 149 82 + 1106 10 13 53 149 293 + 1107 9 23 82 149 53 + 1108 10 23 82 149 293 + 1109 3 82 149 293 197 + 1110 3 82 149 293 226 + 1111 3 53 149 293 197 + 1112 3 53 149 293 226 + 1113 2 341 197 293 149 + 1114 6 341 197 293 226 + 1115 8 200 197 293 149 + 1116 1 200 197 293 226 + 1117 6 370 226 293 197 + 1118 2 370 226 293 149 + 1119 1 227 226 293 197 + 1120 8 227 226 293 149 + 1121 11 28 38 6 135 + 1122 11 28 38 6 46 + 1123 11 28 38 6 79 + 1124 11 20 38 6 135 + 1125 11 20 38 6 46 + 1126 11 20 38 6 79 + 1127 11 16 38 6 135 + 1128 11 16 38 6 46 + 1129 11 16 38 6 79 + 1130 11 28 38 16 104 + 1131 11 28 38 16 69 + 1132 11 28 38 16 56 + 1133 11 20 38 16 104 + 1134 11 20 38 16 69 + 1135 11 20 38 16 56 + 1136 11 6 38 16 104 + 1137 11 6 38 16 69 + 1138 11 6 38 16 56 + 1139 11 105 20 38 28 + 1140 11 105 20 38 6 + 1141 11 105 20 38 16 + 1142 11 83 20 38 28 + 1143 11 83 20 38 6 + 1144 11 83 20 38 16 + 1145 11 60 20 38 28 + 1146 11 60 20 38 6 + 1147 11 60 20 38 16 + 1148 11 113 28 38 20 + 1149 11 113 28 38 6 + 1150 11 113 28 38 16 + 1151 11 122 28 38 20 + 1152 11 122 28 38 6 + 1153 11 122 28 38 16 + 1154 11 92 28 38 20 + 1155 11 92 28 38 6 + 1156 11 92 28 38 16 + 1157 9 28 92 164 105 + 1158 10 28 92 164 308 + 1159 9 20 105 164 92 + 1160 10 20 105 164 308 + 1161 9 16 104 176 113 + 1162 10 16 104 176 320 + 1163 9 28 113 176 104 + 1164 10 28 113 176 320 + 1165 10 322 178 122 28 + 1166 9 135 178 122 28 + 1167 10 322 178 135 6 + 1168 9 122 178 135 6 + 1169 9 81 150 54 14 + 1170 10 294 150 54 14 + 1171 9 24 81 150 54 + 1172 10 24 81 150 294 + 1173 3 225 294 150 81 + 1174 3 225 294 150 54 + 1175 3 198 294 150 81 + 1176 3 198 294 150 54 + 1177 6 225 294 198 342 + 1178 1 225 294 198 199 + 1179 2 150 294 198 342 + 1180 8 150 294 198 199 + 1181 2 369 225 294 150 + 1182 6 369 225 294 198 + 1183 8 228 225 294 150 + 1184 1 228 225 294 198 + 1185 9 77 154 58 18 + 1186 10 298 154 58 18 + 1187 9 58 154 77 2 + 1188 10 298 154 77 2 + 1189 3 221 298 154 58 + 1190 3 221 298 154 77 + 1191 3 202 298 154 58 + 1192 3 202 298 154 77 + 1193 2 154 298 202 346 + 1194 8 154 298 202 203 + 1195 6 221 298 202 346 + 1196 1 221 298 202 203 + 1197 2 154 298 221 365 + 1198 8 154 298 221 224 + 1199 6 202 298 221 365 + 1200 1 202 298 221 224 + 1201 11 32 34 2 42 + 1202 11 32 34 2 131 + 1203 11 32 34 2 77 + 1204 11 18 34 2 42 + 1205 11 18 34 2 131 + 1206 11 18 34 2 77 + 1207 11 10 34 2 42 + 1208 11 10 34 2 131 + 1209 11 10 34 2 77 + 1210 11 2 34 10 50 + 1211 11 2 34 10 67 + 1212 11 2 34 10 102 + 1213 11 32 34 10 50 + 1214 11 32 34 10 67 + 1215 11 32 34 10 102 + 1216 11 18 34 10 50 + 1217 11 18 34 10 67 + 1218 11 18 34 10 102 + 1219 11 2 34 18 58 + 1220 11 2 34 18 111 + 1221 11 2 34 18 87 + 1222 11 32 34 18 58 + 1223 11 32 34 18 111 + 1224 11 32 34 18 87 + 1225 11 10 34 18 58 + 1226 11 10 34 18 111 + 1227 11 10 34 18 87 + 1228 11 2 34 32 115 + 1229 11 2 34 32 128 + 1230 11 2 34 32 96 + 1231 11 18 34 32 115 + 1232 11 18 34 32 128 + 1233 11 18 34 32 96 + 1234 11 10 34 32 115 + 1235 11 10 34 32 128 + 1236 11 10 34 32 96 + 1237 9 32 96 168 111 + 1238 10 32 96 168 312 + 1239 9 18 111 168 96 + 1240 10 18 111 168 312 + 1241 9 115 174 102 10 + 1242 10 318 174 102 10 + 1243 10 32 115 174 318 + 1244 9 32 115 174 102 + 1245 9 32 128 184 131 + 1246 10 32 128 184 328 + 1247 9 2 131 184 128 + 1248 10 2 131 184 328 + +Impropers + + 1 2 137 41 281 68 + 2 2 138 42 67 282 + 3 2 139 66 43 283 + 4 2 140 65 284 44 + 5 2 141 285 45 70 + 6 2 142 69 46 286 + 7 2 143 287 47 72 + 8 2 144 288 71 48 + 9 2 145 49 289 88 + 10 2 146 50 87 290 + 11 2 147 51 291 86 + 12 2 148 292 52 85 + 13 2 149 82 53 293 + 14 2 150 81 54 294 + 15 2 151 84 295 55 + 16 2 152 83 296 56 + 17 2 153 57 297 78 + 18 2 154 58 77 298 + 19 2 155 59 299 80 + 20 2 156 300 60 79 + 21 2 157 301 76 61 + 22 2 158 75 62 302 + 23 2 159 74 303 63 + 24 2 160 73 304 64 + 25 2 161 89 305 108 + 26 2 162 306 107 90 + 27 2 163 106 91 307 + 28 2 164 105 92 308 + 29 2 165 93 309 110 + 30 2 166 109 310 94 + 31 2 167 95 311 112 + 32 2 168 96 111 312 + 33 2 169 97 313 118 + 34 2 170 314 117 98 + 35 2 171 315 99 120 + 36 2 172 316 100 119 + 37 2 173 101 116 317 + 38 2 174 115 318 102 + 39 2 175 114 319 103 + 40 2 176 113 104 320 + 41 2 177 121 321 136 + 42 2 178 322 135 122 + 43 2 179 323 123 134 + 44 2 180 124 324 133 + 45 2 181 125 325 130 + 46 2 182 129 326 126 + 47 2 183 132 127 327 + 48 2 184 131 128 328 + 49 3 185 329 281 188 + 50 3 186 282 187 330 + 51 3 187 186 331 283 + 52 3 188 185 284 332 + 53 3 189 333 285 192 + 54 3 190 286 191 334 + 55 3 191 335 190 287 + 56 3 192 288 189 336 + 57 3 193 289 337 196 + 58 3 194 290 195 338 + 59 3 195 194 339 291 + 60 3 196 193 340 292 + 61 3 197 293 341 200 + 62 3 198 342 199 294 + 63 3 199 343 198 295 + 64 3 200 344 197 296 + 65 3 201 297 345 204 + 66 3 202 346 203 298 + 67 3 203 202 347 299 + 68 3 204 201 300 348 + 69 3 205 349 301 208 + 70 3 206 350 207 302 + 71 3 207 351 206 303 + 72 3 208 304 205 352 + 73 3 209 353 284 212 + 74 3 210 354 211 283 + 75 3 211 210 355 282 + 76 3 212 209 281 356 + 77 3 213 357 286 216 + 78 3 214 285 358 215 + 79 3 215 214 359 288 + 80 3 216 213 287 360 + 81 3 217 361 220 304 + 82 3 218 362 219 303 + 83 3 219 218 363 302 + 84 3 220 217 364 301 + 85 3 221 298 365 224 + 86 3 222 297 366 223 + 87 3 223 300 222 367 + 88 3 224 299 221 368 + 89 3 225 369 228 294 + 90 3 226 370 227 293 + 91 3 227 226 371 296 + 92 3 228 225 372 295 + 93 3 229 292 373 232 + 94 3 230 291 374 231 + 95 3 231 290 230 375 + 96 3 232 289 229 376 + 97 3 233 305 377 236 + 98 3 234 306 235 378 + 99 3 235 234 307 379 + 100 3 236 233 380 308 + 101 3 237 381 309 240 + 102 3 238 310 239 382 + 103 3 239 383 238 311 + 104 3 240 384 237 312 + 105 3 241 313 385 244 + 106 3 242 314 243 386 + 107 3 243 242 315 387 + 108 3 244 241 316 388 + 109 3 245 317 389 248 + 110 3 246 318 247 390 + 111 3 247 246 319 391 + 112 3 248 320 245 392 + 113 3 249 393 308 252 + 114 3 250 394 251 307 + 115 3 251 250 395 306 + 116 3 252 249 305 396 + 117 3 253 397 310 256 + 118 3 254 309 398 255 + 119 3 255 254 399 312 + 120 3 256 253 311 400 + 121 3 257 401 260 320 + 122 3 258 402 259 319 + 123 3 259 258 403 318 + 124 3 260 257 404 317 + 125 3 261 314 405 264 + 126 3 262 313 406 263 + 127 3 263 316 262 407 + 128 3 264 315 261 408 + 129 3 265 321 409 268 + 130 3 266 322 267 410 + 131 3 267 266 323 411 + 132 3 268 265 324 412 + 133 3 269 413 325 272 + 134 3 270 326 271 414 + 135 3 271 270 327 415 + 136 3 272 416 269 328 + 137 3 273 417 276 326 + 138 3 274 418 275 325 + 139 3 275 274 419 328 + 140 3 276 273 420 327 + 141 3 277 324 421 280 + 142 3 278 323 422 279 + 143 3 279 322 278 423 + 144 3 280 321 277 424 + 145 1 281 137 185 212 + 146 1 282 138 211 186 + 147 1 283 210 139 187 + 148 1 284 209 140 188 + 149 1 285 189 141 214 + 150 1 286 213 142 190 + 151 1 287 191 143 216 + 152 1 288 192 215 144 + 153 1 289 145 193 232 + 154 1 290 146 231 194 + 155 1 291 147 195 230 + 156 1 292 148 229 196 + 157 1 293 197 149 226 + 158 1 294 225 150 198 + 159 1 295 228 199 151 + 160 1 296 227 200 152 + 161 1 297 153 201 222 + 162 1 298 154 221 202 + 163 1 299 155 203 224 + 164 1 300 156 223 204 + 165 1 301 205 220 157 + 166 1 302 219 158 206 + 167 1 303 218 207 159 + 168 1 304 217 208 160 + 169 1 305 161 233 252 + 170 1 306 162 251 234 + 171 1 307 250 163 235 + 172 1 308 249 164 236 + 173 1 309 237 165 254 + 174 1 310 253 166 238 + 175 1 311 239 167 256 + 176 1 312 240 255 168 + 177 1 313 241 169 262 + 178 1 314 170 261 242 + 179 1 315 243 171 264 + 180 1 316 172 263 244 + 181 1 317 245 260 173 + 182 1 318 259 246 174 + 183 1 319 258 247 175 + 184 1 320 257 176 248 + 185 1 321 265 177 280 + 186 1 322 178 279 266 + 187 1 323 267 278 179 + 188 1 324 268 180 277 + 189 1 325 269 181 274 + 190 1 326 273 270 182 + 191 1 327 276 271 183 + 192 1 328 275 184 272 diff --git a/examples/USER/yaff/mof5/lammps.in b/examples/USER/yaff/mof5/lammps.in new file mode 100644 index 0000000000000000000000000000000000000000..1decfd77e4d67fea6a4b3ff9019ecf0a8641425e --- /dev/null +++ b/examples/USER/yaff/mof5/lammps.in @@ -0,0 +1,42 @@ +######################################### +#General settings +######################################### +units real +atom_style full +boundary p p p +dielectric 1 + +######################################### +#Force field and system specification +######################################### +special_bonds lj 0.000000 0.000000 1.000000 coul 1.000000 1.000000 1.000000 +pair_style mm3/switch3/coulgauss/long 12.0000 4.0000 +pair_modify table 16 # Accuracy of the table used for real space electrostatics +pair_modify mix arithmetic +pair_modify tail no +bond_style mm3 +angle_style hybrid cross mm3 +dihedral_style fourier +improper_style distharm +box tilt large + +read_data lammps.data # Data file location +kspace_style pppm 0.0000001 # Ewald accuracy +neighbor 2.0 multi +neigh_modify every 2 delay 4 check yes + +######################################### +#Output settings +######################################### +thermo 10 # Provide output every n steps +thermo_style custom step time etotal ke temp pe emol evdwl ecoul elong etail vol press +thermo_modify line multi format float %20.12f + +######################################### +#Sampling options +######################################### +timestep 0.5 # in femtosecond +velocity all create 0.0 5 # initial temperature in Kelvin and random seed +fix 1 all npt temp 300.0 300.0 100.0 tri 1.0 1.0 1000.0 tchain 3 mtk yes nreset 1000 +fix_modify 1 energy yes # Add thermo/barostat contributions to energy +run 100 diff --git a/src/Makefile b/src/Makefile index c58d5bd9eb0be6ccae0339d65bb602cf4b6468fe..ee3159b588bf2775b969f3ec2fe2bd2aff9ead61 100644 --- a/src/Makefile +++ b/src/Makefile @@ -63,7 +63,7 @@ PACKUSER = user-atc user-awpmd user-bocs user-cgdna user-cgsdk user-colvars \ user-mgpt user-misc user-mofff user-molfile \ user-netcdf user-omp user-phonon user-plumed user-ptm user-qmmm \ user-qtb user-quip user-reaxc user-scafacos user-smd user-smtbq \ - user-sdpd user-sph user-tally user-uef user-vtk + user-sdpd user-sph user-tally user-uef user-vtk user-yaff PACKLIB = compress gpu kim kokkos latte message mpiio mscg poems \ python voronoi \ diff --git a/src/USER-YAFF/README b/src/USER-YAFF/README new file mode 100644 index 0000000000000000000000000000000000000000..4fabe6739066591b0cbc1de0cf0bfbed9afd16f8 --- /dev/null +++ b/src/USER-YAFF/README @@ -0,0 +1,8 @@ +This package implements the styles that are needed to use typical force fields +generated by QuickFF for the simulation of metal-organic frameworks. The +QuickFF methodology is detailed in following papers: + Vanduyfhuys et al., J. Comput. Chem., 36 (13), 1015-1027 (2015) http://dx.doi.org/10.1002/jcc.23877 + Vanduyfhuys et al., J. Comput. Chem., 39 (16), 999-1011 (2018) http://dx.doi.org/10.1002/jcc.25173 +The corresponding software package can be found on http://molmod.github.io/QuickFF + + diff --git a/src/USER-YAFF/angle_cross.cpp b/src/USER-YAFF/angle_cross.cpp new file mode 100644 index 0000000000000000000000000000000000000000..a31931a23b429078628b01ba4c9af3d0a0875667 --- /dev/null +++ b/src/USER-YAFF/angle_cross.cpp @@ -0,0 +1,344 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, 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: Steven Vandenbrande +------------------------------------------------------------------------- */ + +#include <math.h> +#include <string.h> +#include <stdlib.h> +#include "angle_cross.h" +#include "atom.h" +#include "neighbor.h" +#include "domain.h" +#include "comm.h" +#include "force.h" +#include "math_const.h" +#include "memory.h" +#include "error.h" + +using namespace LAMMPS_NS; +using namespace MathConst; + +#define SMALL 0.001 + +/* ---------------------------------------------------------------------- */ + +AngleCross::AngleCross(LAMMPS *lmp) : Angle(lmp) {} + +/* ---------------------------------------------------------------------- */ + +AngleCross::~AngleCross() +{ + if (copymode) return; + + if (allocated) { + memory->destroy(setflag); + memory->destroy(kss); + memory->destroy(kbs0); + memory->destroy(kbs1); + memory->destroy(r00); + memory->destroy(r01); + memory->destroy(theta0); + } +} + +/* ---------------------------------------------------------------------- */ + +void AngleCross::compute(int eflag, int vflag) +{ + int i1,i2,i3,n,type; + double delx1,dely1,delz1,delx2,dely2,delz2; + double eangle,f1[3],f3[3]; + double dtheta,dtheta2,dtheta3,dtheta4,de_angle; + double dr1,dr2,tk1,tk2,aa1,aa2,aa11,aa12,aa21,aa22; + double rsq1,rsq2,r1,r2,c,s,a,a11,a12,a22,b1,b2; + double vx11,vx12,vy11,vy12,vz11,vz12,vx21,vx22,vy21,vy22,vz21,vz22; + + eangle = 0.0; + if (eflag || vflag) ev_setup(eflag,vflag); + else evflag = 0; + + double **x = atom->x; + double **f = atom->f; + int **anglelist = neighbor->anglelist; + int nanglelist = neighbor->nanglelist; + int nlocal = atom->nlocal; + int newton_bond = force->newton_bond; + + for (n = 0; n < nanglelist; n++) { + i1 = anglelist[n][0]; + i2 = anglelist[n][1]; + i3 = anglelist[n][2]; + type = anglelist[n][3]; + + // 1st bond + + delx1 = x[i1][0] - x[i2][0]; + dely1 = x[i1][1] - x[i2][1]; + delz1 = x[i1][2] - x[i2][2]; + + rsq1 = delx1*delx1 + dely1*dely1 + delz1*delz1; + r1 = sqrt(rsq1); + + // 2nd bond + + delx2 = x[i3][0] - x[i2][0]; + dely2 = x[i3][1] - x[i2][1]; + delz2 = x[i3][2] - x[i2][2]; + + rsq2 = delx2*delx2 + dely2*dely2 + delz2*delz2; + r2 = sqrt(rsq2); + + // angle (cos and sin) + + c = delx1*delx2 + dely1*dely2 + delz1*delz2; + c /= r1*r2; + + if (c > 1.0) c = 1.0; + if (c < -1.0) c = -1.0; + + s = sqrt(1.0 - c*c); + if (s < SMALL) s = SMALL; + s = 1.0/s; + + // force & energy for bond-bond term + dr1 = r1 - r00[type]; + dr2 = r2 - r01[type]; + tk1 = kss[type] * dr1; + tk2 = kss[type] * dr2; + + f1[0] = -delx1*tk2/r1; + f1[1] = -dely1*tk2/r1; + f1[2] = -delz1*tk2/r1; + + f3[0] = -delx2*tk1/r2; + f3[1] = -dely2*tk1/r2; + f3[2] = -delz2*tk1/r2; + + if (eflag) eangle = kss[type]*dr1*dr2; + + // force & energy for bond-angle term + dtheta = acos(c) - theta0[type]; + + aa1 = s * dr1 * kbs0[type]; + aa2 = s * dr2 * kbs1[type]; + + aa11 = aa1 * c / rsq1; + aa12 = -aa1 / (r1 * r2); + aa21 = aa2 * c / rsq1; + aa22 = -aa2 / (r1 * r2); + + vx11 = (aa11 * delx1) + (aa12 * delx2); + vx12 = (aa21 * delx1) + (aa22 * delx2); + vy11 = (aa11 * dely1) + (aa12 * dely2); + vy12 = (aa21 * dely1) + (aa22 * dely2); + vz11 = (aa11 * delz1) + (aa12 * delz2); + vz12 = (aa21 * delz1) + (aa22 * delz2); + + aa11 = aa1 * c / rsq2; + aa21 = aa2 * c / rsq2; + + vx21 = (aa11 * delx2) + (aa12 * delx1); + vx22 = (aa21 * delx2) + (aa22 * delx1); + vy21 = (aa11 * dely2) + (aa12 * dely1); + vy22 = (aa21 * dely2) + (aa22 * dely1); + vz21 = (aa11 * delz2) + (aa12 * delz1); + vz22 = (aa21 * delz2) + (aa22 * delz1); + + b1 = kbs0[type] * dtheta / r1; + b2 = kbs1[type] * dtheta / r2; + + f1[0] -= vx11 + b1*delx1 + vx12; + f1[1] -= vy11 + b1*dely1 + vy12; + f1[2] -= vz11 + b1*delz1 + vz12; + + f3[0] -= vx21 + b2*delx2 + vx22; + f3[1] -= vy21 + b2*dely2 + vy22; + f3[2] -= vz21 + b2*delz2 + vz22; + + if (eflag) eangle += kbs0[type]*dr1*dtheta + kbs1[type]*dr2*dtheta; + + // apply force to each of 3 atoms + + if (newton_bond || i1 < nlocal) { + f[i1][0] += f1[0]; + f[i1][1] += f1[1]; + f[i1][2] += f1[2]; + } + + if (newton_bond || i2 < nlocal) { + f[i2][0] -= f1[0] + f3[0]; + f[i2][1] -= f1[1] + f3[1]; + f[i2][2] -= f1[2] + f3[2]; + } + + if (newton_bond || i3 < nlocal) { + f[i3][0] += f3[0]; + f[i3][1] += f3[1]; + f[i3][2] += f3[2]; + } + + if (evflag) ev_tally(i1,i2,i3,nlocal,newton_bond,eangle,f1,f3, + delx1,dely1,delz1,delx2,dely2,delz2); + } +} + +/* ---------------------------------------------------------------------- */ + +void AngleCross::allocate() +{ + allocated = 1; + int n = atom->nangletypes; + + memory->create(kss,n+1,"angle:kss"); + memory->create(kbs0,n+1,"angle:kbs0"); + memory->create(kbs1,n+1,"angle:kbs1"); + memory->create(r00,n+1,"angle:r00"); + memory->create(r01,n+1,"angle:r01"); + memory->create(theta0,n+1,"angle:theta0"); + memory->create(setflag,n+1,"angle:setflag"); + + for (int i = 1; i <= n; i++) + setflag[i] = 0; +} + +/* ---------------------------------------------------------------------- + set coeffs +------------------------------------------------------------------------- */ + +void AngleCross::coeff(int narg, char **arg) +{ + if (narg != 7) error->all(FLERR,"Incorrect args for angle coefficients"); + if (!allocated) allocate(); + + int ilo,ihi; + force->bounds(FLERR,arg[0],atom->nangletypes,ilo,ihi); + + int count = 0; + + double kss_one = force->numeric(FLERR,arg[1]); + double kbs0_one = force->numeric(FLERR,arg[2]); + double kbs1_one = force->numeric(FLERR,arg[3]); + double r0_one = force->numeric(FLERR,arg[4]); + double r1_one = force->numeric(FLERR,arg[5]); + double theta0_one = force->numeric(FLERR,arg[6]); + + for (int i = ilo; i <= ihi; i++) { + kss[i] = kss_one; + kbs0[i] = kbs0_one; + kbs1[i] = kbs1_one; + r00[i] = r0_one; + r01[i] = r1_one; + // Convert theta0 from degrees to radians + theta0[i] = theta0_one*MY_PI/180.0; + setflag[i] = 1; + count++; + } + + if (count == 0) error->all(FLERR,"Incorrect args for angle coefficients"); +} + +/* ---------------------------------------------------------------------- */ + +double AngleCross::equilibrium_angle(int i) +{ + return theta0[i]; +} + +/* ---------------------------------------------------------------------- + proc 0 writes out coeffs to restart file +------------------------------------------------------------------------- */ + +void AngleCross::write_restart(FILE *fp) +{ + fwrite(&kss[1],sizeof(double),atom->nangletypes,fp); + fwrite(&kbs0[1],sizeof(double),atom->nangletypes,fp); + fwrite(&kbs1[1],sizeof(double),atom->nangletypes,fp); + fwrite(&r00[1],sizeof(double),atom->nangletypes,fp); + fwrite(&r01[1],sizeof(double),atom->nangletypes,fp); + fwrite(&theta0[1],sizeof(double),atom->nangletypes,fp); +} + +/* ---------------------------------------------------------------------- + proc 0 reads coeffs from restart file, bcasts them +------------------------------------------------------------------------- */ + +void AngleCross::read_restart(FILE *fp) +{ + allocate(); + + if (comm->me == 0) { + fread(&kss[1],sizeof(double),atom->nangletypes,fp); + fread(&kbs0[1],sizeof(double),atom->nangletypes,fp); + fread(&kbs1[1],sizeof(double),atom->nangletypes,fp); + fread(&r00[1],sizeof(double),atom->nangletypes,fp); + fread(&r01[1],sizeof(double),atom->nangletypes,fp); + fread(&theta0[1],sizeof(double),atom->nangletypes,fp); + } + + MPI_Bcast(&kss[1],atom->nangletypes,MPI_DOUBLE,0,world); + MPI_Bcast(&kbs0[1],atom->nangletypes,MPI_DOUBLE,0,world); + MPI_Bcast(&kbs1[1],atom->nangletypes,MPI_DOUBLE,0,world); + MPI_Bcast(&r00[1],atom->nangletypes,MPI_DOUBLE,0,world); + MPI_Bcast(&r01[1],atom->nangletypes,MPI_DOUBLE,0,world); + MPI_Bcast(&theta0[1],atom->nangletypes,MPI_DOUBLE,0,world); + + for (int i = 1; i <= atom->nangletypes; i++) setflag[i] = 1; +} + +/* ---------------------------------------------------------------------- + proc 0 writes to data file +------------------------------------------------------------------------- */ + +void AngleCross::write_data(FILE *fp) +{ + for (int i = 1; i <= atom->nangletypes; i++) + fprintf(fp,"%d %g %g %g %g\n", + i,kss[i],kbs0[i],kbs1[i],r00[i],r01[i],theta0[i]/MY_PI*180.0); +} + +/* ---------------------------------------------------------------------- */ + +double AngleCross::single(int type, int i1, int i2, int i3) +{ + double **x = atom->x; + + double delx1 = x[i1][0] - x[i2][0]; + double dely1 = x[i1][1] - x[i2][1]; + double delz1 = x[i1][2] - x[i2][2]; + domain->minimum_image(delx1,dely1,delz1); + double r1 = sqrt(delx1*delx1 + dely1*dely1 + delz1*delz1); + + double delx2 = x[i3][0] - x[i2][0]; + double dely2 = x[i3][1] - x[i2][1]; + double delz2 = x[i3][2] - x[i2][2]; + domain->minimum_image(delx2,dely2,delz2); + double r2 = sqrt(delx2*delx2 + dely2*dely2 + delz2*delz2); + + double c = delx1*delx2 + dely1*dely2 + delz1*delz2; + c /= r1*r2; + if (c > 1.0) c = 1.0; + if (c < -1.0) c = -1.0; + + double s = sqrt(1.0 - c*c); + if (s < SMALL) s = SMALL; + s = 1.0/s; + + double dtheta = acos(c) - theta0[type]; + double dr1 = r1 - r00[type]; + double dr2 = r2 - r01[type]; + double energy = kss[type]*dr1*dr2+kbs0[type]*dr1*dtheta + kbs1[type]*dr2*dtheta; + return energy; +} diff --git a/src/USER-YAFF/angle_cross.h b/src/USER-YAFF/angle_cross.h new file mode 100644 index 0000000000000000000000000000000000000000..7709c104145a4ebad853814dcadf792e9e0f5c3e --- /dev/null +++ b/src/USER-YAFF/angle_cross.h @@ -0,0 +1,57 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, 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. +------------------------------------------------------------------------- */ + +#ifdef ANGLE_CLASS + +AngleStyle(cross,AngleCross) + +#else + +#ifndef LMP_ANGLE_CROSS_H +#define LMP_ANGLE_CROSS_H + +#include <stdio.h> +#include "angle.h" + +namespace LAMMPS_NS { + +class AngleCross : public Angle { + public: + AngleCross(class LAMMPS *); + virtual ~AngleCross(); + virtual void compute(int, int); + void coeff(int, char **); + double equilibrium_angle(int); + void write_restart(FILE *); + void read_restart(FILE *); + void write_data(FILE *); + double single(int, int, int, int); + + protected: + double *kss,*kbs0,*kbs1,*r00,*r01,*theta0; + + void allocate(); +}; + +} + +#endif +#endif + +/* ERROR/WARNING messages: + +E: Incorrect args for angle coefficients + +Self-explanatory. Check the input script or data file. + +*/ diff --git a/src/USER-YAFF/angle_mm3.cpp b/src/USER-YAFF/angle_mm3.cpp new file mode 100644 index 0000000000000000000000000000000000000000..ccd9b2e20ead2ec13815f3a06270805d6b316013 --- /dev/null +++ b/src/USER-YAFF/angle_mm3.cpp @@ -0,0 +1,288 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, 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: Steven Vandenbrande +------------------------------------------------------------------------- */ + +#include <math.h> +#include <string.h> +#include <stdlib.h> +#include "angle_mm3.h" +#include "atom.h" +#include "neighbor.h" +#include "domain.h" +#include "comm.h" +#include "force.h" +#include "math_const.h" +#include "memory.h" +#include "error.h" + +using namespace LAMMPS_NS; +using namespace MathConst; + +#define SMALL 0.001 + +/* ---------------------------------------------------------------------- */ + +AngleMM3::AngleMM3(LAMMPS *lmp) : Angle(lmp) {} + +/* ---------------------------------------------------------------------- */ + +AngleMM3::~AngleMM3() +{ + if (copymode) return; + + if (allocated) { + memory->destroy(setflag); + memory->destroy(theta0); + memory->destroy(k2); + } +} + +/* ---------------------------------------------------------------------- */ + +void AngleMM3::compute(int eflag, int vflag) +{ + int i1,i2,i3,n,type; + double delx1,dely1,delz1,delx2,dely2,delz2; + double eangle,f1[3],f3[3]; + double dtheta,dtheta2,dtheta3,dtheta4,de_angle; + double dr1,dr2,tk1,tk2,aa1,aa2,aa11,aa12,aa21,aa22; + double rsq1,rsq2,r1,r2,c,s,a,a11,a12,a22,b1,b2; + double vx11,vx12,vy11,vy12,vz11,vz12,vx21,vx22,vy21,vy22,vz21,vz22; + + eangle = 0.0; + if (eflag || vflag) ev_setup(eflag,vflag); + else evflag = 0; + + double **x = atom->x; + double **f = atom->f; + int **anglelist = neighbor->anglelist; + int nanglelist = neighbor->nanglelist; + int nlocal = atom->nlocal; + int newton_bond = force->newton_bond; + + for (n = 0; n < nanglelist; n++) { + i1 = anglelist[n][0]; + i2 = anglelist[n][1]; + i3 = anglelist[n][2]; + type = anglelist[n][3]; + + // 1st bond + + delx1 = x[i1][0] - x[i2][0]; + dely1 = x[i1][1] - x[i2][1]; + delz1 = x[i1][2] - x[i2][2]; + + rsq1 = delx1*delx1 + dely1*dely1 + delz1*delz1; + r1 = sqrt(rsq1); + + // 2nd bond + + delx2 = x[i3][0] - x[i2][0]; + dely2 = x[i3][1] - x[i2][1]; + delz2 = x[i3][2] - x[i2][2]; + + rsq2 = delx2*delx2 + dely2*dely2 + delz2*delz2; + r2 = sqrt(rsq2); + + // angle (cos and sin) + + c = delx1*delx2 + dely1*dely2 + delz1*delz2; + c /= r1*r2; + + if (c > 1.0) c = 1.0; + if (c < -1.0) c = -1.0; + + s = sqrt(1.0 - c*c); + if (s < SMALL) s = SMALL; + s = 1.0/s; + + // force & energy for angle term + + dtheta = acos(c) - theta0[type]; + dtheta2 = dtheta*dtheta; + dtheta3 = dtheta2*dtheta; + dtheta4 = dtheta3*dtheta; + // MM3 angle term, taking into account that dtheta is expressed in rad + de_angle = 2.0*k2[type]*dtheta*(1.0-1.203211*dtheta+0.367674*dtheta2-0.3239159*dtheta3+0.711270*dtheta4); + + a = -de_angle*s; + a11 = a*c / rsq1; + a12 = -a / (r1*r2); + a22 = a*c / rsq2; + + f1[0] = a11*delx1 + a12*delx2; + f1[1] = a11*dely1 + a12*dely2; + f1[2] = a11*delz1 + a12*delz2; + + f3[0] = a22*delx2 + a12*delx1; + f3[1] = a22*dely2 + a12*dely1; + f3[2] = a22*delz2 + a12*delz1; + // MM3 angle term, taking into account that dtheta is expressed in rad + if (eflag) eangle = k2[type]*dtheta2*(1.0-0.802141*dtheta+0.183837*dtheta2-0.131664*dtheta3+0.237090*dtheta4); + + // apply force to each of 3 atoms + + if (newton_bond || i1 < nlocal) { + f[i1][0] += f1[0]; + f[i1][1] += f1[1]; + f[i1][2] += f1[2]; + } + + if (newton_bond || i2 < nlocal) { + f[i2][0] -= f1[0] + f3[0]; + f[i2][1] -= f1[1] + f3[1]; + f[i2][2] -= f1[2] + f3[2]; + } + + if (newton_bond || i3 < nlocal) { + f[i3][0] += f3[0]; + f[i3][1] += f3[1]; + f[i3][2] += f3[2]; + } + + if (evflag) ev_tally(i1,i2,i3,nlocal,newton_bond,eangle,f1,f3, + delx1,dely1,delz1,delx2,dely2,delz2); + } +} + +/* ---------------------------------------------------------------------- */ + +void AngleMM3::allocate() +{ + allocated = 1; + int n = atom->nangletypes; + + memory->create(setflag,n+1,"angle:setflag"); + memory->create(k2,n+1,"angle:k2"); + memory->create(theta0,n+1,"angle:theta0"); + for (int i = 1; i <= n; i++) + setflag[i] = 0; +} + +/* ---------------------------------------------------------------------- + set coeffs + else -> Angle coeffs +------------------------------------------------------------------------- */ + +void AngleMM3::coeff(int narg, char **arg) +{ + if (narg != 3) error->all(FLERR,"Incorrect args for angle coefficients"); + if (!allocated) allocate(); + + int ilo,ihi; + force->bounds(FLERR,arg[0],atom->nangletypes,ilo,ihi); + + int count = 0; + + double k2_one = force->numeric(FLERR,arg[1]); + double theta0_one = force->numeric(FLERR,arg[2]); + + // convert theta0 from degrees to radians + + for (int i = ilo; i <= ihi; i++) { + k2[i] = k2_one; + theta0[i] = theta0_one/180.0 * MY_PI; + setflag[i] = 1; + count++; + } + + if (count == 0) error->all(FLERR,"Incorrect args for angle coefficients"); + +} + +/* ---------------------------------------------------------------------- */ + +double AngleMM3::equilibrium_angle(int i) +{ + return theta0[i]; +} + +/* ---------------------------------------------------------------------- + proc 0 writes out coeffs to restart file +------------------------------------------------------------------------- */ + +void AngleMM3::write_restart(FILE *fp) +{ + fwrite(&k2[1],sizeof(double),atom->nangletypes,fp); + fwrite(&theta0[1],sizeof(double),atom->nangletypes,fp); +} + +/* ---------------------------------------------------------------------- + proc 0 reads coeffs from restart file, bcasts them +------------------------------------------------------------------------- */ + +void AngleMM3::read_restart(FILE *fp) +{ + allocate(); + + if (comm->me == 0) { + fread(&k2[1],sizeof(double),atom->nangletypes,fp); + fread(&theta0[1],sizeof(double),atom->nangletypes,fp); + } + + MPI_Bcast(&k2[1],atom->nangletypes,MPI_DOUBLE,0,world); + MPI_Bcast(&theta0[1],atom->nangletypes,MPI_DOUBLE,0,world); + + for (int i = 1; i <= atom->nangletypes; i++) setflag[i] = 1; +} + +/* ---------------------------------------------------------------------- + proc 0 writes to data file +------------------------------------------------------------------------- */ + +void AngleMM3::write_data(FILE *fp) +{ + for (int i = 1; i <= atom->nangletypes; i++) + fprintf(fp,"%d %g %g\n", + i,k2[i],theta0[i]/MY_PI*180.0); +} + +/* ---------------------------------------------------------------------- */ + +double AngleMM3::single(int type, int i1, int i2, int i3) +{ + double **x = atom->x; + + double delx1 = x[i1][0] - x[i2][0]; + double dely1 = x[i1][1] - x[i2][1]; + double delz1 = x[i1][2] - x[i2][2]; + domain->minimum_image(delx1,dely1,delz1); + double r1 = sqrt(delx1*delx1 + dely1*dely1 + delz1*delz1); + + double delx2 = x[i3][0] - x[i2][0]; + double dely2 = x[i3][1] - x[i2][1]; + double delz2 = x[i3][2] - x[i2][2]; + domain->minimum_image(delx2,dely2,delz2); + double r2 = sqrt(delx2*delx2 + dely2*dely2 + delz2*delz2); + + double c = delx1*delx2 + dely1*dely2 + delz1*delz2; + c /= r1*r2; + if (c > 1.0) c = 1.0; + if (c < -1.0) c = -1.0; + + double s = sqrt(1.0 - c*c); + if (s < SMALL) s = SMALL; + s = 1.0/s; + + double dtheta = acos(c) - theta0[type]; + double dtheta2 = dtheta*dtheta; + double dtheta3 = dtheta2*dtheta; + double dtheta4 = dtheta3*dtheta; + + double energy = k2[type]*dtheta2*(1.0-0.802141*dtheta+0.183837*dtheta2-0.131664*dtheta3+0.237090*dtheta4); + + return energy; +} diff --git a/src/USER-YAFF/angle_mm3.h b/src/USER-YAFF/angle_mm3.h new file mode 100644 index 0000000000000000000000000000000000000000..2d19b4d1b464e6e534dcfa9e0a0acafc0b563581 --- /dev/null +++ b/src/USER-YAFF/angle_mm3.h @@ -0,0 +1,57 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, 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. +------------------------------------------------------------------------- */ + +#ifdef ANGLE_CLASS + +AngleStyle(mm3,AngleMM3) + +#else + +#ifndef LMP_ANGLE_MM3_H +#define LMP_ANGLE_MM3_H + +#include <stdio.h> +#include "angle.h" + +namespace LAMMPS_NS { + +class AngleMM3 : public Angle { + public: + AngleMM3(class LAMMPS *); + virtual ~AngleMM3(); + virtual void compute(int, int); + void coeff(int, char **); + double equilibrium_angle(int); + void write_restart(FILE *); + void read_restart(FILE *); + void write_data(FILE *); + double single(int, int, int, int); + + protected: + double *theta0,*k2; + + void allocate(); +}; + +} + +#endif +#endif + +/* ERROR/WARNING messages: + +E: Incorrect args for angle coefficients + +Self-explanatory. Check the input script or data file. + +*/ diff --git a/src/USER-YAFF/bond_mm3.cpp b/src/USER-YAFF/bond_mm3.cpp new file mode 100644 index 0000000000000000000000000000000000000000..f0e4197c6bd6029c12d2e1c63b61412b60956333 --- /dev/null +++ b/src/USER-YAFF/bond_mm3.cpp @@ -0,0 +1,220 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, 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: Steven Vandenbrande +------------------------------------------------------------------------- */ + +#include <math.h> +#include <stdlib.h> +#include "bond_mm3.h" +#include "atom.h" +#include "neighbor.h" +#include "domain.h" +#include "comm.h" +#include "force.h" +#include "memory.h" +#include "error.h" + +using namespace LAMMPS_NS; + +/* ---------------------------------------------------------------------- */ + +BondMM3::BondMM3(LAMMPS *lmp) : Bond(lmp) {} + +/* ---------------------------------------------------------------------- */ + +BondMM3::~BondMM3() +{ + if (copymode) return; + + if (allocated) { + memory->destroy(setflag); + memory->destroy(r0); + memory->destroy(k2); + } +} + +/* ---------------------------------------------------------------------- */ + +void BondMM3::compute(int eflag, int vflag) +{ + int i1,i2,n,type; + double delx,dely,delz,ebond,fbond; + double rsq,r,dr,dr2,de_bond,K3,K4; + + ebond = 0.0; + if (eflag || vflag) ev_setup(eflag,vflag); + else evflag = 0; + + double **x = atom->x; + double **f = atom->f; + int **bondlist = neighbor->bondlist; + int nbondlist = neighbor->nbondlist; + int nlocal = atom->nlocal; + int newton_bond = force->newton_bond; + + /* + E = K(r-r0)^2 [1-2.55*(r-r0)+(7/12)*2.55^(2)*(r-r0)^2] + with -2.55 in angstrom^(-1) and (7/12)*2.55^(2) in angstrom^(-2) + These prefactors are converted here to the correct units + */ + K3 = -2.55/force->angstrom; + K4 = 7.0/12.0*2.55*2.55/force->angstrom/force->angstrom; + + for (n = 0; n < nbondlist; n++) { + i1 = bondlist[n][0]; + i2 = bondlist[n][1]; + type = bondlist[n][2]; + + delx = x[i1][0] - x[i2][0]; + dely = x[i1][1] - x[i2][1]; + delz = x[i1][2] - x[i2][2]; + + rsq = delx*delx + dely*dely + delz*delz; + r = sqrt(rsq); + dr = r - r0[type]; + dr2 = dr*dr; + + // force & energy + + de_bond = 2.0*k2[type]*dr*(1.0 + 1.5*K3*dr + 2.0*K4*dr2); + if (r > 0.0) fbond = -de_bond/r; + else fbond = 0.0; + + if (eflag) ebond = k2[type]*dr2*(1.0+K3*dr+K4*dr2); + + // apply force to each of 2 atoms + + if (newton_bond || i1 < nlocal) { + f[i1][0] += delx*fbond; + f[i1][1] += dely*fbond; + f[i1][2] += delz*fbond; + } + + if (newton_bond || i2 < nlocal) { + f[i2][0] -= delx*fbond; + f[i2][1] -= dely*fbond; + f[i2][2] -= delz*fbond; + } + + if (evflag) ev_tally(i1,i2,nlocal,newton_bond,ebond,fbond,delx,dely,delz); + } +} + +/* ---------------------------------------------------------------------- */ + +void BondMM3::allocate() +{ + allocated = 1; + int n = atom->nbondtypes; + + memory->create(r0,n+1,"bond:r0"); + memory->create(k2,n+1,"bond:k2"); + + memory->create(setflag,n+1,"bond:setflag"); + for (int i = 1; i <= n; i++) setflag[i] = 0; +} + +/* ---------------------------------------------------------------------- + set coeffs from one line in input script or data file +------------------------------------------------------------------------- */ + +void BondMM3::coeff(int narg, char **arg) +{ + if (narg != 3) error->all(FLERR,"Incorrect args for bond coefficients"); + if (!allocated) allocate(); + + int ilo,ihi; + force->bounds(FLERR,arg[0],atom->nbondtypes,ilo,ihi); + + double k2_one = force->numeric(FLERR,arg[1]); + double r0_one = force->numeric(FLERR,arg[2]); + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + k2[i] = k2_one; + r0[i] = r0_one; + setflag[i] = 1; + count++; + } + + if (count == 0) error->all(FLERR,"Incorrect args for bond coefficients"); +} + +/* ---------------------------------------------------------------------- + return an equilbrium bond length +------------------------------------------------------------------------- */ + +double BondMM3::equilibrium_distance(int i) +{ + return r0[i]; +} + +/* ---------------------------------------------------------------------- + proc 0 writes out coeffs to restart file +------------------------------------------------------------------------- */ + +void BondMM3::write_restart(FILE *fp) +{ + fwrite(&k2[1],sizeof(double),atom->nbondtypes,fp); + fwrite(&r0[1],sizeof(double),atom->nbondtypes,fp); +} + +/* ---------------------------------------------------------------------- + proc 0 reads coeffs from restart file, bcasts them +------------------------------------------------------------------------- */ + +void BondMM3::read_restart(FILE *fp) +{ + allocate(); + + if (comm->me == 0) { + fread(&k2[1],sizeof(double),atom->nbondtypes,fp); + fread(&r0[1],sizeof(double),atom->nbondtypes,fp); + } + MPI_Bcast(&k2[1],atom->nbondtypes,MPI_DOUBLE,0,world); + MPI_Bcast(&r0[1],atom->nbondtypes,MPI_DOUBLE,0,world); + + for (int i = 1; i <= atom->nbondtypes; i++) setflag[i] = 1; +} + +/* ---------------------------------------------------------------------- + proc 0 writes to data file +------------------------------------------------------------------------- */ + +void BondMM3::write_data(FILE *fp) +{ + for (int i = 1; i <= atom->nbondtypes; i++) + fprintf(fp,"%d %g %g\n",i,k2[i],r0[i]); +} + +/* ---------------------------------------------------------------------- */ + +double BondMM3::single(int type, double rsq, int i, int j, double &fforce) +{ + /* + E = K(r-r0)^2 [1-2.55*(r-r0)+(7/12)*2.55^(2)*(r-r0)^2] + with -2.55 in angstrom^(-1) and (7/12)*2.55^(2) in angstrom^(-2) + These prefactors are converted here to the correct units + */ + double K3 = -2.55/force->angstrom; + double K4 = 7.0/12.0*2.55*2.55/force->angstrom/force->angstrom; + double r = sqrt(rsq); + double dr = r - r0[type]; + double dr2 = dr*dr; + double de_bond = 2.0*k2[type]*dr*(1.0 + 1.5*K3*dr + 2.0*K4*dr2); + if (r > 0.0) fforce = -de_bond/r; + else fforce = 0.0; + return k2[type]*dr2*(1.0+K3*dr+K4*dr2); +} diff --git a/src/USER-YAFF/bond_mm3.h b/src/USER-YAFF/bond_mm3.h new file mode 100644 index 0000000000000000000000000000000000000000..9711d895290e18aa40a4cfb6e35695673e176f44 --- /dev/null +++ b/src/USER-YAFF/bond_mm3.h @@ -0,0 +1,57 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, 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. +------------------------------------------------------------------------- */ + +#ifdef BOND_CLASS + +BondStyle(mm3,BondMM3) + +#else + +#ifndef LMP_BOND_MM3_H +#define LMP_BOND_MM3_H + +#include <stdio.h> +#include "bond.h" + +namespace LAMMPS_NS { + +class BondMM3 : public Bond { + public: + BondMM3(class LAMMPS *); + virtual ~BondMM3(); + virtual void compute(int, int); + void coeff(int, char **); + double equilibrium_distance(int); + void write_restart(FILE *); + void read_restart(FILE *); + void write_data(FILE *); + double single(int, double, int, int, double &); + + protected: + double *r0,*k2; + + void allocate(); +}; + +} + +#endif +#endif + +/* ERROR/WARNING messages: + +E: Incorrect args for bond coefficients + +Self-explanatory. Check the input script or data file. + +*/ diff --git a/src/USER-YAFF/improper_distharm.cpp b/src/USER-YAFF/improper_distharm.cpp new file mode 100644 index 0000000000000000000000000000000000000000..9a54afed9a473c0740693bb13cbe311b846215af --- /dev/null +++ b/src/USER-YAFF/improper_distharm.cpp @@ -0,0 +1,269 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, 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: Steven Vandenbrande, heavily based on the + improper_distance code by Paolo Raiteri (Curtin University) +------------------------------------------------------------------------- */ + +#include <mpi.h> +#include <math.h> +#include <stdlib.h> +#include "improper_distharm.h" +#include "atom.h" +#include "comm.h" +#include "neighbor.h" +#include "domain.h" +#include "force.h" +#include "update.h" +#include "memory.h" +#include "error.h" + +using namespace LAMMPS_NS; + +#define TOLERANCE 0.05 +#define SMALL 0.001 + +/* ---------------------------------------------------------------------- */ + +ImproperDistHarm::ImproperDistHarm(LAMMPS *lmp) : Improper(lmp) {} + +/* ---------------------------------------------------------------------- */ + +ImproperDistHarm::~ImproperDistHarm() +{ + if (allocated) { + memory->destroy(setflag); + memory->destroy(k); + memory->destroy(chi); + } +} + +/* ---------------------------------------------------------------------- */ + +void ImproperDistHarm::compute(int eflag, int vflag) +{ + int i1,i2,i3,i4,n,type; + double xab, yab, zab; // bond 1-2 + double xac, yac, zac; // bond 1-3 + double xad, yad, zad; // bond 1-4 + double xbc, ybc, zbc; // bond 2-3 + double xbd, ybd, zbd; // bond 2-4 + double xcd, ycd, zcd; // bond 3-4 + double xna, yna, zna, rna; // normal + double da; + + double eimproper,f1[3],f2[3],f3[3],f4[3]; + double domega,a; + + eimproper = 0.0; + if (eflag || vflag) ev_setup(eflag,vflag); + else evflag = 0; + + double **x = atom->x; + double **f = atom->f; + int **improperlist = neighbor->improperlist; + int nimproperlist = neighbor->nimproperlist; + int nlocal = atom->nlocal; + int newton_bond = force->newton_bond; + + for (n = 0; n < nimproperlist; n++) { + i1 = improperlist[n][0]; + i2 = improperlist[n][1]; + i3 = improperlist[n][2]; + i4 = improperlist[n][3]; + type = improperlist[n][4]; + + // geometry of 4-body + // 4 is the central atom + // 1-2-3 are ment to be equivalent + // I need the bonds between 2-3 and 3-4 to get the plane normal + // Then I need the bond 1-4 to project it onto the normal to the plane + + // bond 1->2 + xab = x[i2][0] - x[i1][0]; + yab = x[i2][1] - x[i1][1]; + zab = x[i2][2] - x[i1][2]; + domain->minimum_image(xab,yab,zab); + + // bond 1->3 + xac = x[i3][0] - x[i1][0]; + yac = x[i3][1] - x[i1][1]; + zac = x[i3][2] - x[i1][2]; + domain->minimum_image(xac,yac,zac); + + // bond 1->4 + xad = x[i4][0] - x[i1][0]; + yad = x[i4][1] - x[i1][1]; + zad = x[i4][2] - x[i1][2]; + domain->minimum_image(xad,yad,zad); + + // bond 2-3 + xbc = x[i3][0] - x[i2][0]; + ybc = x[i3][1] - x[i2][1]; + zbc = x[i3][2] - x[i2][2]; + domain->minimum_image(xbc,ybc,zbc); + + // bond 2-4 + xbd = x[i4][0] - x[i2][0]; + ybd = x[i4][1] - x[i2][1]; + zbd = x[i4][2] - x[i2][2]; + domain->minimum_image(xbd,ybd,zbd); + + // bond 3-4 + xcd = x[i4][0] - x[i3][0]; + ycd = x[i4][1] - x[i3][1]; + zcd = x[i4][2] - x[i3][2]; + domain->minimum_image(xcd,ycd,zcd); + + xna = ybc*zcd - zbc*ycd; + yna = -(xbc*zcd - zbc*xcd); + zna = xbc*ycd - ybc*xcd; + rna = 1.0 / sqrt(xna*xna+yna*yna+zna*zna); + xna *= rna; + yna *= rna; + zna *= rna; + + da = -(xna*xad + yna*yad + zna*zad); + + + domega = k[type]*(da - chi[type])*(da - chi[type]); + a = 2.0* k[type]*(da - chi[type]); + + if (eflag) eimproper = domega; + + f1[0] = a*( -xna); + f1[1] = a*( -yna); + f1[2] = a*( -zna); + f4[0] = a*( xna); + f4[1] = a*( yna); + f4[2] = a*( zna); + + f2[0] = a*( yad*zcd - zad*ycd )*rna + a*da*rna*( yna*zcd - zna*ycd); + f2[1] = a*( zad*xcd - xad*zcd )*rna + a*da*rna*( zna*xcd - xna*zcd); + f2[2] = a*( xad*ycd - yad*xcd )*rna + a*da*rna*( xna*ycd - yna*xcd); + + f3[0] = - a*( yad*zcd - zad*ycd )*rna - a*da*rna*( yna*zcd - zna*ycd); + f3[1] = - a*( zad*xcd - xad*zcd )*rna - a*da*rna*( zna*xcd - xna*zcd); + f3[2] = - a*( xad*ycd - yad*xcd )*rna - a*da*rna*( xna*ycd - yna*xcd); + + f3[0] += -a*( yad*zbc - zad*ybc )*rna - a*da*rna*( yna*zbc - zna*ybc); + f3[1] += -a*( zad*xbc - xad*zbc )*rna - a*da*rna*( zna*xbc - xna*zbc); + f3[2] += -a*( xad*ybc - yad*xbc )*rna - a*da*rna*( xna*ybc - yna*xbc); + f4[0] += a*( yad*zbc - zad*ybc )*rna + a*da*rna*( yna*zbc - zna*ybc); + f4[1] += a*( zad*xbc - xad*zbc )*rna + a*da*rna*( zna*xbc - xna*zbc); + f4[2] += a*( xad*ybc - yad*xbc )*rna + a*da*rna*( xna*ybc - yna*xbc); + + // apply force to each of 4 atoms + + if (newton_bond || i1 < nlocal) { + f[i1][0] += f1[0]; + f[i1][1] += f1[1]; + f[i1][2] += f1[2]; + } + + if (newton_bond || i2 < nlocal) { + f[i2][0] += f2[0]; + f[i2][1] += f2[1]; + f[i2][2] += f2[2]; + } + + if (newton_bond || i3 < nlocal) { + f[i3][0] += f3[0]; + f[i3][1] += f3[1]; + f[i3][2] += f3[2]; + } + + if (newton_bond || i4 < nlocal) { + f[i4][0] += f4[0]; + f[i4][1] += f4[1]; + f[i4][2] += f4[2]; + } + + if (evflag) + ev_tally(i1,i2,i3,i4,nlocal,newton_bond,eimproper,f2,f3,f4, + xab,yab,zab,xac,yac,zac,xad-xac,yad-yac,zad-zac); + } +} + +/* ---------------------------------------------------------------------- */ + +void ImproperDistHarm::allocate() +{ + allocated = 1; + int n = atom->nimpropertypes; + + memory->create(k,n+1,"improper:k"); + memory->create(chi,n+1,"improper:chi"); + + memory->create(setflag,n+1,"improper:setflag"); + for (int i = 1; i <= n; i++) setflag[i] = 0; +} + +/* ---------------------------------------------------------------------- + set coeffs for one type +------------------------------------------------------------------------- */ + +void ImproperDistHarm::coeff(int narg, char **arg) +{ +// if (which > 0) return; + if (narg != 3) error->all(FLERR,"Incorrect args for improper coefficients"); + if (!allocated) allocate(); + + int ilo,ihi; + force->bounds(FLERR,arg[0],atom->nimpropertypes,ilo,ihi); + + double k_one = force->numeric(FLERR,arg[1]); + double chi_one = force->numeric(FLERR,arg[2]); + + // convert chi from degrees to radians + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + k[i] = k_one; + //chi[i] = chi_one/180.0 * PI; + chi[i] = chi_one; + setflag[i] = 1; + count++; + } + + if (count == 0) error->all(FLERR,"Incorrect args for improper coefficients"); +} + +/* ---------------------------------------------------------------------- + proc 0 writes out coeffs to restart file +------------------------------------------------------------------------- */ + +void ImproperDistHarm::write_restart(FILE *fp) +{ + fwrite(&k[1],sizeof(double),atom->nimpropertypes,fp); + fwrite(&chi[1],sizeof(double),atom->nimpropertypes,fp); +} + +/* ---------------------------------------------------------------------- + proc 0 reads coeffs from restart file, bcasts them +------------------------------------------------------------------------- */ + +void ImproperDistHarm::read_restart(FILE *fp) +{ + allocate(); + + if (comm->me == 0) { + fread(&k[1],sizeof(double),atom->nimpropertypes,fp); + fread(&chi[1],sizeof(double),atom->nimpropertypes,fp); + } + MPI_Bcast(&k[1],atom->nimpropertypes,MPI_DOUBLE,0,world); + MPI_Bcast(&chi[1],atom->nimpropertypes,MPI_DOUBLE,0,world); + + for (int i = 1; i <= atom->nimpropertypes; i++) setflag[i] = 1; +} diff --git a/src/USER-YAFF/improper_distharm.h b/src/USER-YAFF/improper_distharm.h new file mode 100644 index 0000000000000000000000000000000000000000..b8b9ae780e06d592f10a0e7b27926b4ce916a5b6 --- /dev/null +++ b/src/USER-YAFF/improper_distharm.h @@ -0,0 +1,47 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, 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. +------------------------------------------------------------------------- */ + +#ifdef IMPROPER_CLASS + +ImproperStyle(distharm,ImproperDistHarm) + +#else + +#ifndef LMP_IMPROPER_DISTHARM_H +#define LMP_IMPROPER_DISTHARM_H + +#include <stdio.h> +#include "improper.h" + +namespace LAMMPS_NS { + +class ImproperDistHarm : public Improper { + public: + ImproperDistHarm(class LAMMPS *); + ~ImproperDistHarm(); + void compute(int, int); + void coeff(int, char **); + void write_restart(FILE *); + void read_restart(FILE *); + + private: + double *k,*chi; + + void allocate(); +}; + +} + +#endif +#endif + diff --git a/src/USER-YAFF/improper_sqdistharm.cpp b/src/USER-YAFF/improper_sqdistharm.cpp new file mode 100644 index 0000000000000000000000000000000000000000..763d82f1c55faa5f84f50b4cf4755ab5eb2bb08f --- /dev/null +++ b/src/USER-YAFF/improper_sqdistharm.cpp @@ -0,0 +1,269 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, 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: Steven Vandenbrande, heavily based on the + improper_distance code by Paolo Raiteri (Curtin University) +------------------------------------------------------------------------- */ + +#include <mpi.h> +#include <math.h> +#include <stdlib.h> +#include "improper_sqdistharm.h" +#include "atom.h" +#include "comm.h" +#include "neighbor.h" +#include "domain.h" +#include "force.h" +#include "update.h" +#include "memory.h" +#include "error.h" + +using namespace LAMMPS_NS; + +#define TOLERANCE 0.05 +#define SMALL 0.001 + +/* ---------------------------------------------------------------------- */ + +ImproperSQDistHarm::ImproperSQDistHarm(LAMMPS *lmp) : Improper(lmp) {} + +/* ---------------------------------------------------------------------- */ + +ImproperSQDistHarm::~ImproperSQDistHarm() +{ + if (allocated) { + memory->destroy(setflag); + memory->destroy(k); + memory->destroy(chi); + } +} + +/* ---------------------------------------------------------------------- */ + +void ImproperSQDistHarm::compute(int eflag, int vflag) +{ + int i1,i2,i3,i4,n,type; + double xab, yab, zab; // bond 1-2 + double xac, yac, zac; // bond 1-3 + double xad, yad, zad; // bond 1-4 + double xbc, ybc, zbc; // bond 2-3 + double xbd, ybd, zbd; // bond 2-4 + double xcd, ycd, zcd; // bond 3-4 + double xna, yna, zna, rna; // normal + double da; + + double eimproper,f1[3],f2[3],f3[3],f4[3]; + double domega,a; + + eimproper = 0.0; + if (eflag || vflag) ev_setup(eflag,vflag); + else evflag = 0; + + double **x = atom->x; + double **f = atom->f; + int **improperlist = neighbor->improperlist; + int nimproperlist = neighbor->nimproperlist; + int nlocal = atom->nlocal; + int newton_bond = force->newton_bond; + + for (n = 0; n < nimproperlist; n++) { + i1 = improperlist[n][0]; + i2 = improperlist[n][1]; + i3 = improperlist[n][2]; + i4 = improperlist[n][3]; + type = improperlist[n][4]; + + // geometry of 4-body + // 4 is the central atom + // 1-2-3 are ment to be equivalent + // I need the bonds between 2-3 and 3-4 to get the plane normal + // Then I need the bond 1-4 to project it onto the normal to the plane + + // bond 1->2 + xab = x[i2][0] - x[i1][0]; + yab = x[i2][1] - x[i1][1]; + zab = x[i2][2] - x[i1][2]; + domain->minimum_image(xab,yab,zab); + + // bond 1->3 + xac = x[i3][0] - x[i1][0]; + yac = x[i3][1] - x[i1][1]; + zac = x[i3][2] - x[i1][2]; + domain->minimum_image(xac,yac,zac); + + // bond 1->4 + xad = x[i4][0] - x[i1][0]; + yad = x[i4][1] - x[i1][1]; + zad = x[i4][2] - x[i1][2]; + domain->minimum_image(xad,yad,zad); + + // bond 2-3 + xbc = x[i3][0] - x[i2][0]; + ybc = x[i3][1] - x[i2][1]; + zbc = x[i3][2] - x[i2][2]; + domain->minimum_image(xbc,ybc,zbc); + + // bond 2-4 + xbd = x[i4][0] - x[i2][0]; + ybd = x[i4][1] - x[i2][1]; + zbd = x[i4][2] - x[i2][2]; + domain->minimum_image(xbd,ybd,zbd); + + // bond 3-4 + xcd = x[i4][0] - x[i3][0]; + ycd = x[i4][1] - x[i3][1]; + zcd = x[i4][2] - x[i3][2]; + domain->minimum_image(xcd,ycd,zcd); + + xna = ybc*zcd - zbc*ycd; + yna = -(xbc*zcd - zbc*xcd); + zna = xbc*ycd - ybc*xcd; + rna = 1.0 / sqrt(xna*xna+yna*yna+zna*zna); + xna *= rna; + yna *= rna; + zna *= rna; + + da = -(xna*xad + yna*yad + zna*zad); + + domega = k[type]*(da*da - chi[type])*(da*da - chi[type]); + a = 4.0 * da* k[type]*(da*da - chi[type]); + + if (eflag) eimproper = domega; + + f1[0] = a*( -xna); + f1[1] = a*( -yna); + f1[2] = a*( -zna); + f4[0] = a*( xna); + f4[1] = a*( yna); + f4[2] = a*( zna); + + f2[0] = a*( yad*zcd - zad*ycd )*rna + a*da*rna*( yna*zcd - zna*ycd); + f2[1] = a*( zad*xcd - xad*zcd )*rna + a*da*rna*( zna*xcd - xna*zcd); + f2[2] = a*( xad*ycd - yad*xcd )*rna + a*da*rna*( xna*ycd - yna*xcd); + + f3[0] = - a*( yad*zcd - zad*ycd )*rna - a*da*rna*( yna*zcd - zna*ycd); + f3[1] = - a*( zad*xcd - xad*zcd )*rna - a*da*rna*( zna*xcd - xna*zcd); + f3[2] = - a*( xad*ycd - yad*xcd )*rna - a*da*rna*( xna*ycd - yna*xcd); + + f3[0] += -a*( yad*zbc - zad*ybc )*rna - a*da*rna*( yna*zbc - zna*ybc); + f3[1] += -a*( zad*xbc - xad*zbc )*rna - a*da*rna*( zna*xbc - xna*zbc); + f3[2] += -a*( xad*ybc - yad*xbc )*rna - a*da*rna*( xna*ybc - yna*xbc); + f4[0] += a*( yad*zbc - zad*ybc )*rna + a*da*rna*( yna*zbc - zna*ybc); + f4[1] += a*( zad*xbc - xad*zbc )*rna + a*da*rna*( zna*xbc - xna*zbc); + f4[2] += a*( xad*ybc - yad*xbc )*rna + a*da*rna*( xna*ybc - yna*xbc); + + + // apply force to each of 4 atoms + + if (newton_bond || i1 < nlocal) { + f[i1][0] += f1[0]; + f[i1][1] += f1[1]; + f[i1][2] += f1[2]; + } + + if (newton_bond || i2 < nlocal) { + f[i2][0] += f2[0]; + f[i2][1] += f2[1]; + f[i2][2] += f2[2]; + } + + if (newton_bond || i3 < nlocal) { + f[i3][0] += f3[0]; + f[i3][1] += f3[1]; + f[i3][2] += f3[2]; + } + + if (newton_bond || i4 < nlocal) { + f[i4][0] += f4[0]; + f[i4][1] += f4[1]; + f[i4][2] += f4[2]; + } + + if (evflag) + ev_tally(i1,i2,i3,i4,nlocal,newton_bond,eimproper,f2,f3,f4, + xab,yab,zab,xac,yac,zac,xad-xac,yad-yac,zad-zac); + } +} + +/* ---------------------------------------------------------------------- */ + +void ImproperSQDistHarm::allocate() +{ + allocated = 1; + int n = atom->nimpropertypes; + + memory->create(k,n+1,"improper:k"); + memory->create(chi,n+1,"improper:chi"); + + memory->create(setflag,n+1,"improper:setflag"); + for (int i = 1; i <= n; i++) setflag[i] = 0; +} + +/* ---------------------------------------------------------------------- + set coeffs for one type +------------------------------------------------------------------------- */ + +void ImproperSQDistHarm::coeff(int narg, char **arg) +{ +// if (which > 0) return; + if (narg != 3) error->all(FLERR,"Incorrect args for improper coefficients"); + if (!allocated) allocate(); + + int ilo,ihi; + force->bounds(FLERR,arg[0],atom->nimpropertypes,ilo,ihi); + + double k_one = force->numeric(FLERR,arg[1]); + double chi_one = force->numeric(FLERR,arg[2]); + + // convert chi from degrees to radians + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + k[i] = k_one; + //chi[i] = chi_one/180.0 * PI; + chi[i] = chi_one; + setflag[i] = 1; + count++; + } + + if (count == 0) error->all(FLERR,"Incorrect args for improper coefficients"); +} + +/* ---------------------------------------------------------------------- + proc 0 writes out coeffs to restart file +------------------------------------------------------------------------- */ + +void ImproperSQDistHarm::write_restart(FILE *fp) +{ + fwrite(&k[1],sizeof(double),atom->nimpropertypes,fp); + fwrite(&chi[1],sizeof(double),atom->nimpropertypes,fp); +} + +/* ---------------------------------------------------------------------- + proc 0 reads coeffs from restart file, bcasts them +------------------------------------------------------------------------- */ + +void ImproperSQDistHarm::read_restart(FILE *fp) +{ + allocate(); + + if (comm->me == 0) { + fread(&k[1],sizeof(double),atom->nimpropertypes,fp); + fread(&chi[1],sizeof(double),atom->nimpropertypes,fp); + } + MPI_Bcast(&k[1],atom->nimpropertypes,MPI_DOUBLE,0,world); + MPI_Bcast(&chi[1],atom->nimpropertypes,MPI_DOUBLE,0,world); + + for (int i = 1; i <= atom->nimpropertypes; i++) setflag[i] = 1; +} diff --git a/src/USER-YAFF/improper_sqdistharm.h b/src/USER-YAFF/improper_sqdistharm.h new file mode 100644 index 0000000000000000000000000000000000000000..301b5066cbabc4d8a877dd0b56caf603634ac450 --- /dev/null +++ b/src/USER-YAFF/improper_sqdistharm.h @@ -0,0 +1,47 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, 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. +------------------------------------------------------------------------- */ + +#ifdef IMPROPER_CLASS + +ImproperStyle(sqdistharm,ImproperSQDistHarm) + +#else + +#ifndef LMP_IMPROPER_SQDISTHARM_H +#define LMP_IMPROPER_SQDISTHARM_H + +#include <stdio.h> +#include "improper.h" + +namespace LAMMPS_NS { + +class ImproperSQDistHarm : public Improper { + public: + ImproperSQDistHarm(class LAMMPS *); + ~ImproperSQDistHarm(); + void compute(int, int); + void coeff(int, char **); + void write_restart(FILE *); + void read_restart(FILE *); + + private: + double *k,*chi; + + void allocate(); +}; + +} + +#endif +#endif + diff --git a/src/USER-YAFF/pair_lj_switch3_coulgauss_long.cpp b/src/USER-YAFF/pair_lj_switch3_coulgauss_long.cpp new file mode 100644 index 0000000000000000000000000000000000000000..b3a267807dbc9c1465ce3ebd726377ce62fc18c0 --- /dev/null +++ b/src/USER-YAFF/pair_lj_switch3_coulgauss_long.cpp @@ -0,0 +1,714 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, 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: Steven Vandenbrande +------------------------------------------------------------------------- */ + +#include <math.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "pair_lj_switch3_coulgauss_long.h" +#include "atom.h" +#include "comm.h" +#include "force.h" +#include "kspace.h" +#include "update.h" +#include "integrate.h" +#include "respa.h" +#include "neighbor.h" +#include "neigh_list.h" +#include "neigh_request.h" +#include "math_const.h" +#include "memory.h" +#include "error.h" + +using namespace LAMMPS_NS; +using namespace MathConst; + +#define EWALD_F 1.12837917 +#define EWALD_P 0.3275911 +#define A1 0.254829592 +#define A2 -0.284496736 +#define A3 1.421413741 +#define A4 -1.453152027 +#define A5 1.061405429 + +/* ---------------------------------------------------------------------- */ + +PairLJSwitch3CoulGaussLong::PairLJSwitch3CoulGaussLong(LAMMPS *lmp) : Pair(lmp) +{ + ewaldflag = pppmflag = 1; + respa_enable = 1; + writedata = 1; + ftable = NULL; + qdist = 0.0; +} + +/* ---------------------------------------------------------------------- */ + +PairLJSwitch3CoulGaussLong::~PairLJSwitch3CoulGaussLong() +{ + if (allocated) { + memory->destroy(setflag); + memory->destroy(cutsq); + + memory->destroy(cut_lj); + memory->destroy(cut_ljsq); + memory->destroy(epsilon); + memory->destroy(sigma); + memory->destroy(gamma); + memory->destroy(lj1); + memory->destroy(lj2); + memory->destroy(lj3); + memory->destroy(lj4); + memory->destroy(offset); + } + if (ftable) free_tables(); +} + +/* ---------------------------------------------------------------------- */ + +void PairLJSwitch3CoulGaussLong::compute(int eflag, int vflag) +{ + int i,ii,j,jj,inum,jnum,itype,jtype,itable,jtable,ktable; + double qtmp,xtmp,ytmp,ztmp,delx,dely,delz,evdwl,ecoul,ecoul2,fpair; + double fraction,fraction2,table; + double r,r2inv,r6inv,forcecoul,forcecoul2,forcelj,factor_coul,factor_lj,tr,ftr,trx; + double grij,expm2,prefactor,prefactor2,t,erfc1,erfc2,rrij,expn2,expb,g_ewald2i,g_ewaldi; + int *ilist,*jlist,*numneigh,**firstneigh; + double rsq, lookup_corr; + + evdwl = ecoul = 0.0; + if (eflag || vflag) ev_setup(eflag,vflag); + else evflag = vflag_fdotr = 0; + + double **x = atom->x; + double **f = atom->f; + double *q = atom->q; + int *type = atom->type; + int nlocal = atom->nlocal; + double *special_coul = force->special_coul; + double *special_lj = force->special_lj; + int newton_pair = force->newton_pair; + double qqrd2e = force->qqrd2e; + union_int_float_t rsq_lookup; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + g_ewaldi = 1.0/g_ewald; + g_ewald2i = g_ewaldi*g_ewaldi; + lookup_corr = 0.0; + + // 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]; + itype = type[i]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + factor_lj = special_lj[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]; + + if (rsq < cutsq[itype][jtype]) { + r2inv = 1.0/rsq; + + if (rsq < cut_coulsq) { + if (!ncoultablebits || rsq <= tabinnersq) { + r = sqrt(rsq); + grij = g_ewald * r; + expm2 = exp(-grij*grij); + t = 1.0 / (1.0 + EWALD_P*grij); + erfc1 = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2; + prefactor = qqrd2e * qtmp*q[j]/r; + forcecoul = prefactor * (erfc1 + EWALD_F*grij*expm2); + if (factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*prefactor; + } else { + rsq_lookup.f = rsq; + itable = rsq_lookup.i & ncoulmask; + itable >>= ncoulshiftbits; + fraction = (rsq_lookup.f - rtable[itable]) * drtable[itable]; + table = ftable[itable] + fraction*dftable[itable]; + forcecoul = qtmp*q[j] * table; + if (factor_coul < 1.0) { + table = ctable[itable] + fraction*dctable[itable]; + prefactor = qtmp*q[j] * table; + forcecoul -= (1.0-factor_coul)*prefactor; + } + } + } else forcecoul = 0.0; + + if (rsq < cut_ljsq[itype][jtype]) { + // Lennard-Jones potential + r = sqrt(rsq); + r6inv = r2inv*r2inv*r2inv; + forcelj = r6inv*(12.0*lj3[itype][jtype]*r6inv - 6.0*lj4[itype][jtype]); + // Correction for Gaussian radii + if (lj2[itype][jtype]==0.0) { + // This means a point charge is considerd, so the correction is zero + expn2 = 0.0; + erfc2 = 0.0; + forcecoul2 = 0.0; + } + else { + rrij = lj2[itype][jtype]*r; + expn2 = exp(-rrij*rrij); + erfc2 = erfc(rrij); + prefactor2 = -qqrd2e*qtmp*q[j]/r; + forcecoul2 = prefactor2*(erfc2+EWALD_F*rrij*expn2); + } + } else forcelj = 0.0; + + if (rsq < cut_coulsq) { + if (!ncoultablebits || rsq <= tabinnersq) + ecoul = prefactor*erfc1; + else { + table = etable[itable] + fraction*detable[itable]; + ecoul = qtmp*q[j] * table; + } + if (factor_coul < 1.0) ecoul -= (1.0-factor_coul)*prefactor; + } else ecoul = 0.0; + + if (rsq < cut_ljsq[itype][jtype]) { + ecoul += prefactor2*erfc2*factor_coul; + evdwl = r6inv*(lj3[itype][jtype]*r6inv-lj4[itype][jtype]) - + offset[itype][jtype]; + } else evdwl = 0.0; + + // Truncation, see Yaff Switch33 + if (truncw>0) { + if (rsq < cut_ljsq[itype][jtype]) { + if (r>cut_lj[itype][jtype]-truncw) { + trx = (cut_lj[itype][jtype]-r)*truncwi; + tr = trx*trx*(3.0-2.0*trx); + ftr = 6.0*trx*(1.0-trx)*r*truncwi; + forcelj = forcelj*tr + evdwl*ftr; + evdwl *= tr; + } + } + } + + fpair = (forcecoul + factor_coul*forcecoul2 + factor_lj*forcelj) * r2inv; + evdwl *= factor_lj; + + 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; + } + + 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 PairLJSwitch3CoulGaussLong::allocate() +{ + allocated = 1; + int n = atom->ntypes; + + memory->create(setflag,n+1,n+1,"pair:setflag"); + for (int i = 1; i <= n; i++) + for (int j = i; j <= n; j++) + setflag[i][j] = 0; + + memory->create(cutsq,n+1,n+1,"pair:cutsq"); + + memory->create(cut_lj,n+1,n+1,"pair:cut_lj"); + memory->create(cut_ljsq,n+1,n+1,"pair:cut_ljsq"); + memory->create(epsilon,n+1,n+1,"pair:epsilon"); + memory->create(sigma,n+1,n+1,"pair:sigma"); + memory->create(gamma,n+1,n+1,"pair:gamma"); + memory->create(lj1,n+1,n+1,"pair:lj1"); + memory->create(lj2,n+1,n+1,"pair:lj2"); + memory->create(lj3,n+1,n+1,"pair:lj3"); + memory->create(lj4,n+1,n+1,"pair:lj4"); + memory->create(offset,n+1,n+1,"pair:offset"); +} + +/* ---------------------------------------------------------------------- + global settings +------------------------------------------------------------------------- */ + +void PairLJSwitch3CoulGaussLong::settings(int narg, char **arg) +{ + if (narg < 2 || narg > 3) error->all(FLERR,"Illegal pair_style command"); + + cut_lj_global = force->numeric(FLERR,arg[0]); + if (narg == 2) { + cut_coul = cut_lj_global; + truncw = force->numeric(FLERR,arg[1]); + } + else { + cut_coul = force->numeric(FLERR,arg[1]); + truncw = force->numeric(FLERR,arg[2]); + } + if (truncw>0.0) truncwi = 1.0/truncw; + else truncwi = 0.0; + // 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_lj[i][j] = cut_lj_global; + } +} + +/* ---------------------------------------------------------------------- + set coeffs for one or more type pairs +------------------------------------------------------------------------- */ + +void PairLJSwitch3CoulGaussLong::coeff(int narg, char **arg) +{ + if (narg < 5 || narg > 6) + error->all(FLERR,"Incorrect args for pair coefficients"); + if (!allocated) allocate(); + + int ilo,ihi,jlo,jhi; + force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); + force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + + double epsilon_one = force->numeric(FLERR,arg[2]); + double sigma_one = force->numeric(FLERR,arg[3]); + double gamma_one = force->numeric(FLERR,arg[4]); + + double cut_lj_one = cut_lj_global; + if (narg == 6) cut_lj_one = force->numeric(FLERR,arg[5]); + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + for (int j = MAX(jlo,i); j <= jhi; j++) { + epsilon[i][j] = epsilon_one; + sigma[i][j] = sigma_one; + gamma[i][j] = gamma_one; + cut_lj[i][j] = cut_lj_one; + setflag[i][j] = 1; + count++; + } + } + + if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients"); +} + +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ + +void PairLJSwitch3CoulGaussLong::init_style() +{ + if (!atom->q_flag) + error->all(FLERR,"Pair style lj/switch3/coulgauss/long requires atom attribute q"); + + // request regular or rRESPA neighbor list + + int irequest; + int respa = 0; + + if (update->whichflag == 1 && strstr(update->integrate_style,"respa")) { + if (((Respa *) update->integrate)->level_inner >= 0) respa = 1; + if (((Respa *) update->integrate)->level_middle >= 0) respa = 2; + } + + irequest = neighbor->request(this,instance_me); + + if (respa >= 1) { + neighbor->requests[irequest]->respaouter = 1; + neighbor->requests[irequest]->respainner = 1; + } + if (respa == 2) neighbor->requests[irequest]->respamiddle = 1; + + cut_coulsq = cut_coul * cut_coul; + + // set rRESPA cutoffs + + if (strstr(update->integrate_style,"respa") && + ((Respa *) update->integrate)->level_inner >= 0) + cut_respa = ((Respa *) update->integrate)->cutoff; + else cut_respa = NULL; + + // insure use of KSpace long-range solver, set g_ewald + + if (force->kspace == NULL) + error->all(FLERR,"Pair style requires a KSpace style"); + g_ewald = force->kspace->g_ewald; + + // setup force tables + + if (ncoultablebits) init_tables(cut_coul,cut_respa); +} + +/* ---------------------------------------------------------------------- + init for one type pair i,j and corresponding j,i +------------------------------------------------------------------------- */ + +double PairLJSwitch3CoulGaussLong::init_one(int i, int j) +{ + if (setflag[i][j] == 0) { + epsilon[i][j] = mix_energy(epsilon[i][i],epsilon[j][j], + sigma[i][i],sigma[j][j]); + sigma[i][j] = mix_distance(sigma[i][i],sigma[j][j]); + gamma[i][j] = 1.0/sqrt(gamma[i][i]*gamma[i][i]+gamma[j][j]*gamma[j][j]); + cut_lj[i][j] = mix_distance(cut_lj[i][i],cut_lj[j][j]); + } + + double cut = MAX(cut_lj[i][j],cut_coul+2.0*qdist); + cut_ljsq[i][j] = cut_lj[i][j] * cut_lj[i][j]; + lj1[i][j] = 48.0 * epsilon[i][j] * pow(sigma[i][j],12.0); + if (gamma[i][i]==0.0 && gamma[j][j]==0.0) lj2[i][j] = 0.0; + else lj2[i][j] = 1.0/sqrt(gamma[i][i]*gamma[i][i]+gamma[j][j]*gamma[j][j]); + lj3[i][j] = 4.0 * epsilon[i][j] * pow(sigma[i][j],12.0); + lj4[i][j] = 4.0 * epsilon[i][j] * pow(sigma[i][j],6.0); + + if (offset_flag && (cut_lj[i][j] > 0.0)) { + // Truncation is active, so offset is zero, except if truncw==0.0 + if (truncw==0.0) { + double r = cut_lj[i][j]; + double r2inv = 1.0/(r*r); + double r6inv = r2inv*r2inv*r2inv; + double r12inv = r6inv*r6inv; + offset[i][j] = lj3[i][j]*r12inv-lj4[i][j]*r6inv; + } + else {offset[i][j] = 0.0;} + } else offset[i][j] = 0.0; + + cut_ljsq[j][i] = cut_ljsq[i][j]; + cut_lj[j][i] = cut_lj[i][j]; + lj1[j][i] = lj1[i][j]; + lj2[j][i] = lj2[i][j]; + lj3[j][i] = lj3[i][j]; + lj4[j][i] = lj4[i][j]; + offset[j][i] = offset[i][j]; + + // check interior rRESPA cutoff + + if (cut_respa && MIN(cut_lj[i][j],cut_coul) < cut_respa[3]) + error->all(FLERR,"Pair cutoff < Respa interior cutoff"); + + // compute I,J contribution to long-range tail correction + // count total # of atoms of type I and J via Allreduce + + if (tail_flag) { + int *type = atom->type; + int nlocal = atom->nlocal; + + double count[2],all[2]; + count[0] = count[1] = 0.0; + for (int k = 0; k < nlocal; k++) { + if (type[k] == i) count[0] += 1.0; + if (type[k] == j) count[1] += 1.0; + } + MPI_Allreduce(count,all,2,MPI_DOUBLE,MPI_SUM,world); + + double cg = epsilon[i][j]; + double cg1 = cut_lj[i][j]; + double cg3 = sigma[i][j]; + if (truncw > 0.0) { + double cg5 = truncw; + double t1 = pow(cg1, 0.2e1); + double t2 = t1 * cg1; + double t3 = t1 * t1; + double t4 = t3 * t2; + double t5 = -cg1 + cg5; + double t6 = t5 * t5; + double t8 = t6 * t6; + double t9 = t8 * t6 * t5; + double t10 = t4 * t9; + double t11 = log(-t5); + double t14 = log(cg1); + double t19 = pow(cg5, 0.2e1); + double t20 = t19 * t19; + double t21 = t20 * t19; + double t24 = pow(cg3, 0.2e1); + double t25 = t24 * t24; + double t26 = t25 * t24; + double t29 = t20 * cg5; + double t35 = t3 * t3; + double t41 = t19 * cg5; + double t58 = t21 * t3 * t1 - t21 * t26 / 0.84e2 - 0.6e1 * t29 * t4 + t29 * cg1 * t26 / 0.18e2 + 0.15e2 * t20 * t35 - t20 * t1 * t26 / 0.9e1 - 0.20e2 * t41 * t35 * cg1 + t41 * t2 * t26 / 0.9e1 + 0.15e2 * t19 * t35 * t1 - t19 * t3 * t26 / 0.18e2 - 0.6e1 * t35 * t2 * cg5 + t35 * t3; + double t71 = -0.4e1 * cg * (0.2e1 * t10 * t11 - 0.2e1 * t10 * t14 + (cg5 - 0.2e1 * cg1) * t58 * cg5) * t26 / t4 / t41 / t9; + etail_ij = 2.0*MY_PI*all[0]*all[1]*t71; + ptail_ij = 2.0*MY_PI*all[0]*all[1]*t71; + } + else { + double t1 = pow(cg3, 0.2e1); + double t2 = t1 * t1; + double t3 = t2 * t1; + double t5 = pow(cg1, 0.2e1); + double t6 = t5 * t5; + double t10 = t6 * t6; + double t16 = -0.4e1 / 0.9e1 * t3 * cg * (0.3e1 * t6 * t5 - t3) / t10 / cg1; + t1 = pow(cg3, 0.2e1); + t2 = t1 * t1; + t3 = t2 * t1; + t5 = pow(cg1, 0.2e1); + t6 = t5 * t5; + double t11 = t6 * t6; + double t17 = 0.8e1 / 0.3e1 * t3 * cg * (0.3e1 * t6 * t5 - 0.2e1 * t3) / t11 / cg1; + etail_ij = 2.0*MY_PI*all[0]*all[1]*t16; + ptail_ij = -2.0/3.0*MY_PI*all[0]*all[1]*t17; + } + } + + return cut; +} + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairLJSwitch3CoulGaussLong::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(&epsilon[i][j],sizeof(double),1,fp); + fwrite(&sigma[i][j],sizeof(double),1,fp); + fwrite(&gamma[i][j],sizeof(double),1,fp); + fwrite(&cut_lj[i][j],sizeof(double),1,fp); + } + } +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairLJSwitch3CoulGaussLong::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) fread(&setflag[i][j],sizeof(int),1,fp); + MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world); + if (setflag[i][j]) { + if (me == 0) { + fread(&epsilon[i][j],sizeof(double),1,fp); + fread(&sigma[i][j],sizeof(double),1,fp); + fread(&gamma[i][j],sizeof(double),1,fp); + fread(&cut_lj[i][j],sizeof(double),1,fp); + } + MPI_Bcast(&epsilon[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&sigma[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&gamma[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut_lj[i][j],1,MPI_DOUBLE,0,world); + } + } +} + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairLJSwitch3CoulGaussLong::write_restart_settings(FILE *fp) +{ + fwrite(&cut_lj_global,sizeof(double),1,fp); + fwrite(&cut_coul,sizeof(double),1,fp); + fwrite(&truncw,sizeof(double),1,fp); + fwrite(&offset_flag,sizeof(int),1,fp); + fwrite(&mix_flag,sizeof(int),1,fp); + fwrite(&tail_flag,sizeof(int),1,fp); + fwrite(&ncoultablebits,sizeof(int),1,fp); + fwrite(&tabinner,sizeof(double),1,fp); +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairLJSwitch3CoulGaussLong::read_restart_settings(FILE *fp) +{ + if (comm->me == 0) { + fread(&cut_lj_global,sizeof(double),1,fp); + fread(&cut_coul,sizeof(double),1,fp); + fread(&truncw,sizeof(double),1,fp); + fread(&offset_flag,sizeof(int),1,fp); + fread(&mix_flag,sizeof(int),1,fp); + fread(&tail_flag,sizeof(int),1,fp); + fread(&ncoultablebits,sizeof(int),1,fp); + fread(&tabinner,sizeof(double),1,fp); + } + MPI_Bcast(&cut_lj_global,1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut_coul,1,MPI_DOUBLE,0,world); + MPI_Bcast(&truncw,1,MPI_DOUBLE,0,world); + MPI_Bcast(&offset_flag,1,MPI_INT,0,world); + MPI_Bcast(&mix_flag,1,MPI_INT,0,world); + MPI_Bcast(&tail_flag,1,MPI_INT,0,world); + MPI_Bcast(&ncoultablebits,1,MPI_INT,0,world); + MPI_Bcast(&tabinner,1,MPI_DOUBLE,0,world); +} + + +/* ---------------------------------------------------------------------- + proc 0 writes to data file +------------------------------------------------------------------------- */ + +void PairLJSwitch3CoulGaussLong::write_data(FILE *fp) +{ + for (int i = 1; i <= atom->ntypes; i++) + fprintf(fp,"%d %g %g %g\n",i,epsilon[i][i],sigma[i][i],gamma[i][i]); +} + +/* ---------------------------------------------------------------------- + proc 0 writes all pairs to data file +------------------------------------------------------------------------- */ + +void PairLJSwitch3CoulGaussLong::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 %g\n",i,j,epsilon[i][j],sigma[i][j],gamma[i][j],cut_lj[i][j]); +} + +/* ---------------------------------------------------------------------- */ + +double PairLJSwitch3CoulGaussLong::single(int i, int j, int itype, int jtype, + double rsq, + double factor_coul, double factor_lj, + double &fforce) +{ + double r2inv,r6inv,r,grij,expm2,t,erfc1,prefactor,prefactor2,rrij,expn2,erfc2; + double fraction,table,forcecoul,forcecoul2,forcelj,phicoul,phicoul2,philj; + double expb, ecoul, evdwl, trx, tr, ftr; + + int itable; + + r2inv = 1.0/rsq; + if (rsq < cut_coulsq) { + if (!ncoultablebits || rsq <= tabinnersq) { + r = sqrt(rsq); + grij = g_ewald * r; + expm2 = exp(-grij*grij); + t = 1.0 / (1.0 + EWALD_P*grij); + erfc1 = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2; + prefactor = force->qqrd2e * atom->q[i]*atom->q[j]/r; + forcecoul = prefactor * (erfc1 + EWALD_F*grij*expm2); + if (factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*prefactor; + } else { + union_int_float_t rsq_lookup_single; + rsq_lookup_single.f = rsq; + itable = rsq_lookup_single.i & ncoulmask; + itable >>= ncoulshiftbits; + fraction = (rsq_lookup_single.f - rtable[itable]) * drtable[itable]; + table = ftable[itable] + fraction*dftable[itable]; + forcecoul = atom->q[i]*atom->q[j] * table; + if (factor_coul < 1.0) { + table = ctable[itable] + fraction*dctable[itable]; + prefactor = atom->q[i]*atom->q[j] * table; + forcecoul -= (1.0-factor_coul)*prefactor; + } + } + } else forcecoul = 0.0; + + if (rsq < cut_ljsq[itype][jtype]) { + r = sqrt(rsq); + r6inv = r2inv*r2inv*r2inv; + rrij = lj2[itype][jtype] * r; + if (rrij==0.0) { + expn2 = 0.0; + erfc2 = 0.0; + } + else { + expn2 = exp(-rrij*rrij); + erfc2 = erfc(rrij); + } + prefactor2 = -force->qqrd2e * atom->q[i]*atom->q[j]/r; + forcecoul2 = prefactor2 * (erfc2 + EWALD_F*rrij*expn2); + forcelj = expb*lj1[itype][jtype]*r-6.0*lj4[itype][jtype]*r6inv; + } else forcelj = 0.0; + + double eng = 0.0; + if (rsq < cut_coulsq) { + if (!ncoultablebits || rsq <= tabinnersq) + phicoul = prefactor*erfc1; + else { + table = etable[itable] + fraction*detable[itable]; + phicoul = atom->q[i]*atom->q[j] * table; + } + if (factor_coul < 1.0) phicoul -= (1.0-factor_coul)*prefactor; + eng += phicoul; + } + + if (rsq < cut_ljsq[itype][jtype]) { + ecoul += prefactor2*erfc2*factor_coul; + evdwl = r6inv*(lj3[itype][jtype]*r6inv-lj4[itype][jtype]) - + offset[itype][jtype]; + } else evdwl = 0.0; + + // Truncation, see Yaff Switch3 + if (truncw>0) { + if (rsq < cut_ljsq[itype][jtype]) { + if (r>cut_lj[itype][jtype]-truncw) { + trx = (cut_lj[itype][jtype]-r)*truncwi; + tr = trx*trx*(3.0-2.0*trx); + ftr = 6.0*trx*(1.0-trx)*r*truncwi; + forcelj = forcelj*tr + evdwl*ftr; + evdwl *= tr; + } + } + } + eng += evdwl*factor_lj; + fforce = (forcecoul + factor_coul*forcecoul2 + factor_lj*forcelj) * r2inv; + + return eng; +} + +/* ---------------------------------------------------------------------- */ + +void *PairLJSwitch3CoulGaussLong::extract(const char *str, int &dim) +{ + dim = 0; + if (strcmp(str,"cut_coul") == 0) return (void *) &cut_coul; + dim = 2; + if (strcmp(str,"epsilon") == 0) return (void *) epsilon; + if (strcmp(str,"sigma") == 0) return (void *) sigma; + if (strcmp(str,"gamma") == 0) return (void *) gamma; + return NULL; +} diff --git a/src/USER-YAFF/pair_lj_switch3_coulgauss_long.h b/src/USER-YAFF/pair_lj_switch3_coulgauss_long.h new file mode 100644 index 0000000000000000000000000000000000000000..75686d55a2cb1932874eb65014ff4d2af4ff2287 --- /dev/null +++ b/src/USER-YAFF/pair_lj_switch3_coulgauss_long.h @@ -0,0 +1,91 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, 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. +------------------------------------------------------------------------- */ + +#ifdef PAIR_CLASS + +PairStyle(lj/switch3/coulgauss/long,PairLJSwitch3CoulGaussLong) + +#else + +#ifndef LMP_PAIR_LJ_SWITCH3_COULGAUSS_LONG_H +#define LMP_PAIR_LJ_SWITCH3_COULGAUSS_LONG_H + +#include "pair.h" + +namespace LAMMPS_NS { + +class PairLJSwitch3CoulGaussLong : public Pair { + + public: + PairLJSwitch3CoulGaussLong(class LAMMPS *); + virtual ~PairLJSwitch3CoulGaussLong(); + virtual void compute(int, int); + virtual void settings(int, char **); + void coeff(int, char **); + virtual void init_style(); + virtual double init_one(int, int); + void write_restart(FILE *); + void read_restart(FILE *); + virtual void write_restart_settings(FILE *); + virtual void read_restart_settings(FILE *); + void write_data(FILE *); + void write_data_all(FILE *); + virtual double single(int, int, int, int, double, double, double, double &); + + virtual void *extract(const char *, int &); + + protected: + double cut_lj_global; + double truncw, truncwi; + double **cut_lj,**cut_ljsq; + double cut_coul,cut_coulsq; + double **epsilon,**sigma,**gamma; + double **lj1,**lj2,**lj3,**lj4,**offset; + double *cut_respa; + double qdist; // TIP4P distance from O site to negative charge + double g_ewald; + + virtual void allocate(); +}; + +} + +#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. + +E: Pair style lj/switch3/coulgauss/long requires atom attribute q + +The atom style defined does not have this attribute. + +E: Pair style requires a KSpace style + +No kspace style is defined. + +E: Pair cutoff < Respa interior cutoff + +One or more pairwise cutoffs are too short to use with the specified +rRESPA cutoffs. + +*/ diff --git a/src/USER-YAFF/pair_mm3_switch3_coulgauss_long.cpp b/src/USER-YAFF/pair_mm3_switch3_coulgauss_long.cpp new file mode 100644 index 0000000000000000000000000000000000000000..0d0e43a0ea00533ff09b02f0f5b7d91fc8dc84e8 --- /dev/null +++ b/src/USER-YAFF/pair_mm3_switch3_coulgauss_long.cpp @@ -0,0 +1,715 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, 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: Steven Vandenbrande +------------------------------------------------------------------------- */ + +#include <math.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "pair_mm3_switch3_coulgauss_long.h" +#include "atom.h" +#include "comm.h" +#include "force.h" +#include "kspace.h" +#include "update.h" +#include "integrate.h" +#include "respa.h" +#include "neighbor.h" +#include "neigh_list.h" +#include "neigh_request.h" +#include "math_const.h" +#include "memory.h" +#include "error.h" + +using namespace LAMMPS_NS; +using namespace MathConst; + +#define EWALD_F 1.12837917 +#define EWALD_P 0.3275911 +#define A1 0.254829592 +#define A2 -0.284496736 +#define A3 1.421413741 +#define A4 -1.453152027 +#define A5 1.061405429 + +/* ---------------------------------------------------------------------- */ + +PairMM3Switch3CoulGaussLong::PairMM3Switch3CoulGaussLong(LAMMPS *lmp) : Pair(lmp) +{ + ewaldflag = pppmflag = 1; + respa_enable = 1; + writedata = 1; + ftable = NULL; + qdist = 0.0; +} + +/* ---------------------------------------------------------------------- */ + +PairMM3Switch3CoulGaussLong::~PairMM3Switch3CoulGaussLong() +{ + if (allocated) { + memory->destroy(setflag); + memory->destroy(cutsq); + + memory->destroy(cut_lj); + memory->destroy(cut_ljsq); + memory->destroy(epsilon); + memory->destroy(sigma); + memory->destroy(gamma); + memory->destroy(lj1); + memory->destroy(lj2); + memory->destroy(lj3); + memory->destroy(lj4); + memory->destroy(offset); + } + if (ftable) free_tables(); +} + +/* ---------------------------------------------------------------------- */ + +void PairMM3Switch3CoulGaussLong::compute(int eflag, int vflag) +{ + int i,ii,j,jj,inum,jnum,itype,jtype,itable,jtable,ktable; + double qtmp,xtmp,ytmp,ztmp,delx,dely,delz,evdwl,ecoul,ecoul2,fpair; + double fraction,fraction2,table; + double r,r2inv,r6inv,forcecoul,forcecoul2,forcelj,factor_coul,factor_lj,tr,ftr,trx; + double grij,expm2,prefactor,prefactor2,t,erfc1,erfc2,rrij,expn2,expb,g_ewald2i,g_ewaldi; + int *ilist,*jlist,*numneigh,**firstneigh; + double rsq, lookup_corr; + + evdwl = ecoul = 0.0; + if (eflag || vflag) ev_setup(eflag,vflag); + else evflag = vflag_fdotr = 0; + + double **x = atom->x; + double **f = atom->f; + double *q = atom->q; + int *type = atom->type; + int nlocal = atom->nlocal; + double *special_coul = force->special_coul; + double *special_lj = force->special_lj; + int newton_pair = force->newton_pair; + double qqrd2e = force->qqrd2e; + union_int_float_t rsq_lookup; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + g_ewaldi = 1.0/g_ewald; + g_ewald2i = g_ewaldi*g_ewaldi; + lookup_corr = 0.0; + + // 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]; + itype = type[i]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + factor_lj = special_lj[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]; + + if (rsq < cutsq[itype][jtype]) { + r2inv = 1.0/rsq; + + if (rsq < cut_coulsq) { + if (!ncoultablebits || rsq <= tabinnersq) { + r = sqrt(rsq); + grij = g_ewald * r; + expm2 = exp(-grij*grij); + t = 1.0 / (1.0 + EWALD_P*grij); + erfc1 = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2; + prefactor = qqrd2e * qtmp*q[j]/r; + forcecoul = prefactor * (erfc1 + EWALD_F*grij*expm2); + if (factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*prefactor; + } else { + rsq_lookup.f = rsq; + itable = rsq_lookup.i & ncoulmask; + itable >>= ncoulshiftbits; + fraction = (rsq_lookup.f - rtable[itable]) * drtable[itable]; + table = ftable[itable] + fraction*dftable[itable]; + forcecoul = qtmp*q[j] * table; + if (factor_coul < 1.0) { + table = ctable[itable] + fraction*dctable[itable]; + prefactor = qtmp*q[j] * table; + forcecoul -= (1.0-factor_coul)*prefactor; + } + } + } else forcecoul = 0.0; + + if (rsq < cut_ljsq[itype][jtype]) { + // Repulsive exponential part + r = sqrt(rsq); + expb = lj3[itype][jtype]*exp(-lj1[itype][jtype]*r); + forcelj = expb*lj1[itype][jtype]*r; + // Attractive r^-6 part + r6inv = r2inv*r2inv*r2inv; + forcelj -= 6.0*lj4[itype][jtype]*r6inv; + // Correction for Gaussian radii + if (lj2[itype][jtype]==0.0) { + // This means a point charge is considered, so the correction is zero + expn2 = 0.0; + erfc2 = 0.0; + forcecoul2 = 0.0; + } + else { + rrij = lj2[itype][jtype]*r; + expn2 = exp(-rrij*rrij); + erfc2 = erfc(rrij); + prefactor2 = -qqrd2e*qtmp*q[j]/r; + forcecoul2 = prefactor2*(erfc2+EWALD_F*rrij*expn2); + } + } else forcelj = 0.0; + + if (rsq < cut_coulsq) { + if (!ncoultablebits || rsq <= tabinnersq) + ecoul = prefactor*erfc1; + else { + table = etable[itable] + fraction*detable[itable]; + ecoul = qtmp*q[j] * table; + } + if (factor_coul < 1.0) ecoul -= (1.0-factor_coul)*prefactor; + } else ecoul = 0.0; + + if (rsq < cut_ljsq[itype][jtype]) { + ecoul += prefactor2*erfc2*factor_coul; + evdwl = expb-lj4[itype][jtype]*r6inv-offset[itype][jtype]; + } else evdwl = 0.0; + + // Truncation, see Yaff Switch3 + if (truncw>0) { + if (rsq < cut_ljsq[itype][jtype]) { + if (r>cut_lj[itype][jtype]-truncw) { + trx = (cut_lj[itype][jtype]-r)*truncwi; + tr = trx*trx*(3.0-2.0*trx); + ftr = 6.0*trx*(1.0-trx)*r*truncwi; + forcelj = forcelj*tr + evdwl*ftr; + evdwl *= tr; + } + } + } + + fpair = (forcecoul + factor_coul*forcecoul2 + factor_lj*forcelj) * r2inv; + evdwl *= factor_lj; + + 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; + } + + 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 PairMM3Switch3CoulGaussLong::allocate() +{ + allocated = 1; + int n = atom->ntypes; + + memory->create(setflag,n+1,n+1,"pair:setflag"); + for (int i = 1; i <= n; i++) + for (int j = i; j <= n; j++) + setflag[i][j] = 0; + + memory->create(cutsq,n+1,n+1,"pair:cutsq"); + + memory->create(cut_lj,n+1,n+1,"pair:cut_lj"); + memory->create(cut_ljsq,n+1,n+1,"pair:cut_ljsq"); + memory->create(epsilon,n+1,n+1,"pair:epsilon"); + memory->create(sigma,n+1,n+1,"pair:sigma"); + memory->create(gamma,n+1,n+1,"pair:gamma"); + memory->create(lj1,n+1,n+1,"pair:lj1"); + memory->create(lj2,n+1,n+1,"pair:lj2"); + memory->create(lj3,n+1,n+1,"pair:lj3"); + memory->create(lj4,n+1,n+1,"pair:lj4"); + memory->create(offset,n+1,n+1,"pair:offset"); +} + +/* ---------------------------------------------------------------------- + global settings +------------------------------------------------------------------------- */ + +void PairMM3Switch3CoulGaussLong::settings(int narg, char **arg) +{ + if (narg < 2 || narg > 3) error->all(FLERR,"Illegal pair_style command"); + + cut_lj_global = force->numeric(FLERR,arg[0]); + if (narg == 2) { + cut_coul = cut_lj_global; + truncw = force->numeric(FLERR,arg[1]); + } + else { + cut_coul = force->numeric(FLERR,arg[1]); + truncw = force->numeric(FLERR,arg[2]); + } + if (truncw>0.0) truncwi = 1.0/truncw; + else truncwi = 0.0; + // 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_lj[i][j] = cut_lj_global; + } +} + +/* ---------------------------------------------------------------------- + set coeffs for one or more type pairs +------------------------------------------------------------------------- */ + +void PairMM3Switch3CoulGaussLong::coeff(int narg, char **arg) +{ + if (narg < 5 || narg > 6) + error->all(FLERR,"Incorrect args for pair coefficients"); + if (!allocated) allocate(); + + int ilo,ihi,jlo,jhi; + force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); + force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + + double epsilon_one = force->numeric(FLERR,arg[2]); + double sigma_one = force->numeric(FLERR,arg[3]); + double gamma_one = force->numeric(FLERR,arg[4]); + + double cut_lj_one = cut_lj_global; + if (narg == 6) cut_lj_one = force->numeric(FLERR,arg[5]); + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + for (int j = MAX(jlo,i); j <= jhi; j++) { + epsilon[i][j] = epsilon_one; + sigma[i][j] = sigma_one; + gamma[i][j] = gamma_one; + cut_lj[i][j] = cut_lj_one; + setflag[i][j] = 1; + count++; + } + } + + if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients"); +} + +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ + +void PairMM3Switch3CoulGaussLong::init_style() +{ + if (!atom->q_flag) + error->all(FLERR,"Pair style mm3/switch3/coulgauss/long requires atom attribute q"); + + // request regular or rRESPA neighbor list + + int irequest; + int respa = 0; + + if (update->whichflag == 1 && strstr(update->integrate_style,"respa")) { + if (((Respa *) update->integrate)->level_inner >= 0) respa = 1; + if (((Respa *) update->integrate)->level_middle >= 0) respa = 2; + } + + irequest = neighbor->request(this,instance_me); + + if (respa >= 1) { + neighbor->requests[irequest]->respaouter = 1; + neighbor->requests[irequest]->respainner = 1; + } + if (respa == 2) neighbor->requests[irequest]->respamiddle = 1; + + cut_coulsq = cut_coul * cut_coul; + + // set rRESPA cutoffs + + if (strstr(update->integrate_style,"respa") && + ((Respa *) update->integrate)->level_inner >= 0) + cut_respa = ((Respa *) update->integrate)->cutoff; + else cut_respa = NULL; + + // insure use of KSpace long-range solver, set g_ewald + + if (force->kspace == NULL) + error->all(FLERR,"Pair style requires a KSpace style"); + g_ewald = force->kspace->g_ewald; + + // setup force tables + + if (ncoultablebits) init_tables(cut_coul,cut_respa); +} + +/* ---------------------------------------------------------------------- + init for one type pair i,j and corresponding j,i +------------------------------------------------------------------------- */ + +double PairMM3Switch3CoulGaussLong::init_one(int i, int j) +{ + if (setflag[i][j] == 0) { + epsilon[i][j] = sqrt(epsilon[i][i]*epsilon[j][j]); + sigma[i][j] = sigma[i][i] + sigma[j][j]; + gamma[i][j] = 1.0/sqrt(gamma[i][i]*gamma[i][i]+gamma[j][j]*gamma[j][j]); + cut_lj[i][j] = mix_distance(cut_lj[i][i],cut_lj[j][j]); + } + + double cut = MAX(cut_lj[i][j],cut_coul+2.0*qdist); + cut_ljsq[i][j] = cut_lj[i][j] * cut_lj[i][j]; + lj1[i][j] = 12.0 / (sigma[i][j]); + if (gamma[i][i]==0.0 && gamma[j][j]==0.0) lj2[i][j] = 0.0; + else lj2[i][j] = 1.0/sqrt(gamma[i][i]*gamma[i][i]+gamma[j][j]*gamma[j][j]); + lj3[i][j] = 1.84e5 * epsilon[i][j]; + lj4[i][j] = 2.25 * epsilon[i][j] * pow(sigma[i][j],6.0); + + if (offset_flag && (cut_lj[i][j] > 0.0)) { + // Truncation is active, so offset is zero, except if truncw==0.0 + if (truncw==0.0) { + double r = cut_lj[i][j]; + double r2inv = 1.0/(r*r); + double r6inv = r2inv*r2inv*r2inv; + double expb = lj3[i][j]*exp(-lj1[i][j]*r); + offset[i][j] = expb-lj4[i][j]*r6inv; + } + else {offset[i][j] = 0.0;} + } else offset[i][j] = 0.0; + + cut_ljsq[j][i] = cut_ljsq[i][j]; + cut_lj[j][i] = cut_lj[i][j]; + lj1[j][i] = lj1[i][j]; + lj2[j][i] = lj2[i][j]; + lj3[j][i] = lj3[i][j]; + lj4[j][i] = lj4[i][j]; + offset[j][i] = offset[i][j]; + + // check interior rRESPA cutoff + + if (cut_respa && MIN(cut_lj[i][j],cut_coul) < cut_respa[3]) + error->all(FLERR,"Pair cutoff < Respa interior cutoff"); + + // compute I,J contribution to long-range tail correction + // count total # of atoms of type I and J via Allreduce + + if (tail_flag) { + int *type = atom->type; + int nlocal = atom->nlocal; + + double count[2],all[2]; + count[0] = count[1] = 0.0; + for (int k = 0; k < nlocal; k++) { + if (type[k] == i) count[0] += 1.0; + if (type[k] == j) count[1] += 1.0; + } + MPI_Allreduce(count,all,2,MPI_DOUBLE,MPI_SUM,world); + + double cg = epsilon[i][j]; + double cg1 = cut_lj[i][j]; + double cg3 = 2.0*sigma[i][j];//Mind the factor 2 here!!! + if (truncw > 0.0) { + double cg5 = truncw; + double t1 = pow(cg3, 0.2e1); + double t2 = t1 * cg3; + double t3 = 0.5e1 / 0.216e3 * t2; + double t5 = cg1 / 0.9e1; + double t8 = -cg1 + cg5; + double t14 = t8 * t8; + double t17 = 0.1e1 / cg3; + double t20 = exp(0.12e2 * t17 * cg5); + double t30 = pow(cg1, 0.2e1); + double t36 = exp(-0.12e2 * t17 * cg1); + double t37 = pow(cg5, 0.2e1); + double t39 = 0.1e1 / t37 / cg5; + double t43 = cg1 * t8; + double t44 = log(-t8); + double t47 = log(cg1); + double t54 = t1 * t1; + double t64 = cg * (0.6388888889e3 * ((-t3 + (0.7e1 / 0.36e2 * cg5 - t5) * t1 - 0.2e1 / 0.3e1 * t8 * (cg5 - cg1 / 0.4e1) * cg3 + cg5 * t14) * t20 + t3 + (cg5 / 0.12e2 + t5) * t1 + (cg5 + cg1 / 0.3e1) * cg1 * cg3 / 0.2e1 + t30 * cg5) * t2 * t36 * t39 - 0.225e1 * (0.2e1 * t43 * t44 - 0.2e1 * t43 * t47 + cg5 * (cg5 - 0.2e1 * cg1)) * t54 * t1 / cg1 / t8 * t39); + etail_ij = 2.0*MY_PI*all[0]*all[1]*t64; + ptail_ij = 2.0*MY_PI*all[0]*all[1]*t64; + } + else { + double t2 = pow(cg3, 0.2e1); + double t3 = t2 * t2; + double t7 = 0.12e2 / cg3 * cg1; + double t8 = exp(t7); + double t11 = pow(cg1, 0.2e1); + double t12 = t11 * t11; + double t17 = t11 * cg1; + double t21 = exp(-t7); + double t27 = -0.9259259259e-2 * cg3 * cg * (0.81e2 * t3 * cg3 * t8 - 0.1656000e7 * t12 * cg1 - 0.276000e6 * cg3 * t12 - 0.23000e5 * t2 * t17) * t21 / t17; + double t1 = pow(cg3, 0.2e1); + t2 = t1 * t1; + double t6 = 0.12e2 / cg3 * cg1; + t7 = exp(t6); + double t10 = pow(cg1, 0.2e1); + t11 = t10 * t10; + double t19 = t10 * cg1; + double t25 = exp(-t6); + double t29 = 0.5555555556e-1 * cg * (0.81e2 * t2 * t1 * t7 - 0.3312000e7 * t11 * t10 - 0.828000e6 * cg3 * t11 * cg1 - 0.138000e6 * t1 * t11 - 0.11500e5 * t19 * t1 * cg3) * t25 / t19; + etail_ij = 2.0*MY_PI*all[0]*all[1]*t27; + ptail_ij = -2.0/3.0*MY_PI*all[0]*all[1]*t29; + } + } + + return cut; +} + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairMM3Switch3CoulGaussLong::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(&epsilon[i][j],sizeof(double),1,fp); + fwrite(&sigma[i][j],sizeof(double),1,fp); + fwrite(&gamma[i][j],sizeof(double),1,fp); + fwrite(&cut_lj[i][j],sizeof(double),1,fp); + } + } +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairMM3Switch3CoulGaussLong::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) fread(&setflag[i][j],sizeof(int),1,fp); + MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world); + if (setflag[i][j]) { + if (me == 0) { + fread(&epsilon[i][j],sizeof(double),1,fp); + fread(&sigma[i][j],sizeof(double),1,fp); + fread(&gamma[i][j],sizeof(double),1,fp); + fread(&cut_lj[i][j],sizeof(double),1,fp); + } + MPI_Bcast(&epsilon[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&sigma[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&gamma[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut_lj[i][j],1,MPI_DOUBLE,0,world); + } + } +} + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairMM3Switch3CoulGaussLong::write_restart_settings(FILE *fp) +{ + fwrite(&cut_lj_global,sizeof(double),1,fp); + fwrite(&cut_coul,sizeof(double),1,fp); + fwrite(&truncw,sizeof(double),1,fp); + fwrite(&offset_flag,sizeof(int),1,fp); + fwrite(&mix_flag,sizeof(int),1,fp); + fwrite(&tail_flag,sizeof(int),1,fp); + fwrite(&ncoultablebits,sizeof(int),1,fp); + fwrite(&tabinner,sizeof(double),1,fp); +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairMM3Switch3CoulGaussLong::read_restart_settings(FILE *fp) +{ + if (comm->me == 0) { + fread(&cut_lj_global,sizeof(double),1,fp); + fread(&cut_coul,sizeof(double),1,fp); + fread(&truncw,sizeof(double),1,fp); + fread(&offset_flag,sizeof(int),1,fp); + fread(&mix_flag,sizeof(int),1,fp); + fread(&tail_flag,sizeof(int),1,fp); + fread(&ncoultablebits,sizeof(int),1,fp); + fread(&tabinner,sizeof(double),1,fp); + } + printf("Reading from restart, trunc = %f\n",truncw); + MPI_Bcast(&cut_lj_global,1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut_coul,1,MPI_DOUBLE,0,world); + MPI_Bcast(&truncw,1,MPI_DOUBLE,0,world); + MPI_Bcast(&offset_flag,1,MPI_INT,0,world); + MPI_Bcast(&mix_flag,1,MPI_INT,0,world); + MPI_Bcast(&tail_flag,1,MPI_INT,0,world); + MPI_Bcast(&ncoultablebits,1,MPI_INT,0,world); + MPI_Bcast(&tabinner,1,MPI_DOUBLE,0,world); +} + + +/* ---------------------------------------------------------------------- + proc 0 writes to data file +------------------------------------------------------------------------- */ + +void PairMM3Switch3CoulGaussLong::write_data(FILE *fp) +{ + for (int i = 1; i <= atom->ntypes; i++) + fprintf(fp,"%d %g %g %g\n",i,epsilon[i][i],sigma[i][i],gamma[i][i]); +} + +/* ---------------------------------------------------------------------- + proc 0 writes all pairs to data file +------------------------------------------------------------------------- */ + +void PairMM3Switch3CoulGaussLong::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 %g\n",i,j,epsilon[i][j],sigma[i][j],gamma[i][j],cut_lj[i][j]); +} + +/* ---------------------------------------------------------------------- */ + +double PairMM3Switch3CoulGaussLong::single(int i, int j, int itype, int jtype, + double rsq, + double factor_coul, double factor_lj, + double &fforce) +{ + double r2inv,r6inv,r,grij,expm2,t,erfc1,prefactor,prefactor2,rrij,expn2,erfc2; + double fraction,table,forcecoul,forcecoul2,forcelj,phicoul,phicoul2,philj; + double expb, ecoul, evdwl, trx, tr, ftr; + + int itable; + + r2inv = 1.0/rsq; + if (rsq < cut_coulsq) { + if (!ncoultablebits || rsq <= tabinnersq) { + r = sqrt(rsq); + grij = g_ewald * r; + expm2 = exp(-grij*grij); + t = 1.0 / (1.0 + EWALD_P*grij); + erfc1 = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2; + prefactor = force->qqrd2e * atom->q[i]*atom->q[j]/r; + forcecoul = prefactor * (erfc1 + EWALD_F*grij*expm2); + if (factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*prefactor; + } else { + union_int_float_t rsq_lookup_single; + rsq_lookup_single.f = rsq; + itable = rsq_lookup_single.i & ncoulmask; + itable >>= ncoulshiftbits; + fraction = (rsq_lookup_single.f - rtable[itable]) * drtable[itable]; + table = ftable[itable] + fraction*dftable[itable]; + forcecoul = atom->q[i]*atom->q[j] * table; + if (factor_coul < 1.0) { + table = ctable[itable] + fraction*dctable[itable]; + prefactor = atom->q[i]*atom->q[j] * table; + forcecoul -= (1.0-factor_coul)*prefactor; + } + } + } else forcecoul = 0.0; + + if (rsq < cut_ljsq[itype][jtype]) { + r = sqrt(rsq); + r6inv = r2inv*r2inv*r2inv; + expb = lj3[itype][jtype]*exp(-lj1[itype][jtype]*r); + rrij = lj2[itype][jtype] * r; + if (rrij==0.0) { + expn2 = 0.0; + erfc2 = 0.0; + } + else { + expn2 = exp(-rrij*rrij); + erfc2 = erfc(rrij); + } + prefactor2 = -force->qqrd2e * atom->q[i]*atom->q[j]/r; + forcecoul2 = prefactor2 * (erfc2 + EWALD_F*rrij*expn2); + forcelj = expb*lj1[itype][jtype]*r-6.0*lj4[itype][jtype]*r6inv; + } else forcelj = 0.0; + + double eng = 0.0; + if (rsq < cut_coulsq) { + if (!ncoultablebits || rsq <= tabinnersq) + phicoul = prefactor*erfc1; + else { + table = etable[itable] + fraction*detable[itable]; + phicoul = atom->q[i]*atom->q[j] * table; + } + if (factor_coul < 1.0) phicoul -= (1.0-factor_coul)*prefactor; + eng += phicoul; + } + + if (rsq < cut_ljsq[itype][jtype]) { + ecoul += prefactor2*erfc2*factor_coul; + evdwl = expb-lj4[itype][jtype]*r6inv-offset[itype][jtype]; + } else evdwl = 0.0; + + // Truncation, see Yaff Switch3 + if (truncw>0) { + if (rsq < cut_ljsq[itype][jtype]) { + if (r>cut_lj[itype][jtype]-truncw) { + trx = (cut_lj[itype][jtype]-r)*truncwi; + tr = trx*trx*(3.0-2.0*trx); + ftr = 6.0*trx*(1.0-trx)*r*truncwi; + forcelj = forcelj*tr + evdwl*ftr; + evdwl *= tr; + } + } + } + eng += evdwl*factor_lj; + fforce = (forcecoul + factor_coul*forcecoul2 + factor_lj*forcelj) * r2inv; + + return eng; +} + +/* ---------------------------------------------------------------------- */ + +void *PairMM3Switch3CoulGaussLong::extract(const char *str, int &dim) +{ + dim = 0; + if (strcmp(str,"cut_coul") == 0) return (void *) &cut_coul; + dim = 2; + if (strcmp(str,"epsilon") == 0) return (void *) epsilon; + if (strcmp(str,"sigma") == 0) return (void *) sigma; + if (strcmp(str,"gamma") == 0) return (void *) gamma; + return NULL; +} diff --git a/src/USER-YAFF/pair_mm3_switch3_coulgauss_long.h b/src/USER-YAFF/pair_mm3_switch3_coulgauss_long.h new file mode 100644 index 0000000000000000000000000000000000000000..35ae6c7995c927a4dd540efb063f5af0ebb3e053 --- /dev/null +++ b/src/USER-YAFF/pair_mm3_switch3_coulgauss_long.h @@ -0,0 +1,91 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, 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. +------------------------------------------------------------------------- */ + +#ifdef PAIR_CLASS + +PairStyle(mm3/switch3/coulgauss/long,PairMM3Switch3CoulGaussLong) + +#else + +#ifndef LMP_PAIR_MM3_SWITCH3_COULGAUSS_LONG_H +#define LMP_PAIR_MM3_SWITCH3_COULGAUSS_LONG_H + +#include "pair.h" + +namespace LAMMPS_NS { + +class PairMM3Switch3CoulGaussLong : public Pair { + + public: + PairMM3Switch3CoulGaussLong(class LAMMPS *); + virtual ~PairMM3Switch3CoulGaussLong(); + virtual void compute(int, int); + virtual void settings(int, char **); + void coeff(int, char **); + virtual void init_style(); + virtual double init_one(int, int); + void write_restart(FILE *); + void read_restart(FILE *); + virtual void write_restart_settings(FILE *); + virtual void read_restart_settings(FILE *); + void write_data(FILE *); + void write_data_all(FILE *); + virtual double single(int, int, int, int, double, double, double, double &); + + virtual void *extract(const char *, int &); + + protected: + double cut_lj_global; + double truncw, truncwi; + double **cut_lj,**cut_ljsq; + double cut_coul,cut_coulsq; + double **epsilon,**sigma,**gamma; + double **lj1,**lj2,**lj3,**lj4,**offset; + double *cut_respa; + double qdist; // TIP4P distance from O site to negative charge + double g_ewald; + + virtual void allocate(); +}; + +} + +#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. + +E: Pair style mm3/switch3/coulgauss/long requires atom attribute q + +The atom style defined does not have this attribute. + +E: Pair style requires a KSpace style + +No kspace style is defined. + +E: Pair cutoff < Respa interior cutoff + +One or more pairwise cutoffs are too short to use with the specified +rRESPA cutoffs. + +*/